這篇博客學習redis的基本命令,主要是講解五種數據類型。
redis提供五種數據類型:string,hash,list,set及zset(sorted set)。下面對5種類型分別介紹。
在介紹五種數據類型前,我們先來了解一下redis的幾個基本的命令,感受一下。個人建議,邊看redis的命令,邊在redis-cli程序中輸入命令,
還是那句話,代碼是敲出來的。
注:redis中命令不區分大小寫
基本命令
1. 查看redis中所有鍵命令
keys * 查看所有鍵
keys a* 查看所有以a開頭的鍵
2. 判斷鍵是否存在
exists aa 判斷鍵名爲aa的是否存在。返回值爲1,表示存在;0表示不存在。
3. 查看鍵值的數據類型
type aa
返回值有五種情況。string,字符串類型;hash,散列類型;list,列表類型;set,集合類型;zset,有序集合類型。
五種數據類型
一. 字符串類型
類型介紹
字符串類型是redis中最基本的數據類型,可以存儲任何格式的的字符串包括二進制數據,如用戶信息、JSON格式的對象等等。一個字符串鍵值最大存儲
512MB字節數據。
操作命令
1. 賦值:set name zhangsan 爲鍵name,賦值爲zhangsan
2. 取值:get name 獲取鍵name的值(當鍵name不存在時返回空)
3. 向尾部追加值:append name nihao 向鍵name的值後追加nihao字符串
4. 獲取字符串長度:strlen name 獲取鍵name的值的長度,若鍵name不存在返回0
5. 同時賦多個值:mset aa 11 bb 22 cc 33 同時爲鍵aa,bb,cc分別賦值爲11,22,33
6. 同時取多個值:mget aa bb 同時獲取鍵aa,bb的值
7. 當存儲的字符串爲整數時,可以使用遞增:incr aa 對鍵aa進行遞增,返回值12(若鍵是字符串會報錯)
8. 遞減:decr aa 對鍵aa進行遞減
9. 刪除:del aa 刪除鍵aa
二. 散列類型
類型介紹
redis是採用鍵值對的方式存儲數據,散列類型也是也是鍵值對存儲的,字段值支持字符串類型。散列類型適合存儲對象。
操作命令
1. 賦值:hset dog name zhangsan 爲dog鍵name,賦值爲zhangsan
2. 取值:hget dog name 獲取dog鍵name的值
3. 批量賦值:hmset dog sex 1 age 5 向dog鍵sex和age賦值,1和5
4. 批量獲取值:hmget dog sex age 批量獲取dog鍵sex和age值
5. 獲取指定key的所有鍵和鍵值:hgetall dog 獲取dog的所有鍵和鍵值
6. 判斷字段是否存在:hexists dog age 存在返回1,不存在返回0
7. 鍵值增加:hincrby dog age 8 爲dog的age加上8
8. 刪除:hdel dog sex 刪除成功返回1,不存在返回0
9. 只獲取字段集合:hkeys dog 獲取dog下所有字段名
10. 只獲取字段值集合:hvals dog 獲取dog下所有字段對應值
11. 獲取字段的數量:hlen dog 獲取dog下字段的個數
三. 列表類型
類型介紹
列表類型存放有序的字符串列表集合,常用的操作向列表的兩端插入數據,或者獲取列表的某段數據。
操作命令
1. 向列表的左邊(前面)添加:lpush hospital 1 爲hospital的左邊添加元素
2. 向列表的右邊(後面)添加:rpush hospital 2 爲hospital的右邊添加元素
3.從列表左邊彈出數據:lpop hospital 彈出數據把數據返回,同時刪除掉
4.從列表右邊彈出數據:rpop hospital
彈出數據把數據返回,同時刪除掉
5. 獲取列表中元素個數:llen hospital 獲取hospital中元素個數
6. 獲取列表中某段數據:lrange hospital 0 2 獲取hospital從0開始到2(共計3個元素),列表是從0開始。若lrange hospital 0 -1,查詢所有
7. 刪除:lrem hospital 0 2 從左邊開始刪除第一個爲2的元素(注:redis沒有rrem命令)
8. 獲取指定索引的元素值:lindex hospital 2 獲取hospital中索引爲2的元素
9. 設置指定索引的元素值:lset hospital 1 9 設置hospital中索引爲1的元素值爲9
10. 只保留指定索引間元素(其它全刪):ltrim hospital 1 2 只保留索引1到2之間的元素,其它全部刪除
11. 向列表中插入元素:
12. 將元素從一個列表轉換到另一個列表:
四. 集合類型
類型介紹
集合類型中每個元素都是不同的,且沒有順序。集合類型最常用的操作是向集合中添加、刪除元素,判斷集合中是否存在某個元素。
操作命令
1. 添加:sadd mail a 爲mail添加元素a
2. 刪除:srem mail a 刪除mail中元素a
3. 獲取集合中所有元素:smembers mail 獲取mail中所有元素
4. 判斷元素是否在集合中:sismember mail a
判斷mail集合中是否有元素a,存在返回1,不存在返回0
5. 多集合間計算差集:sdiff mail mailA
6. 多集合間計算交集:sinter mail mailA
五. 有序集合類型
類型介紹
有序集合相對集合是有順序的。有序集合中每個元素都關聯了一個分數,集合中每個元素都是不同的,但是分數可以相同。
操作命令
1. 添加:zadd scoreboard 90 aa 80 bb 95 cc
2. 獲得元素分數:zscore scoreboard aa
3. 獲取某個範圍:zrange scoreboard 0 2