redis的五種常見數據類型的經常使用指令

 
 
1、String字符串,key-value
應用場景:string是redis的最基本數據類型,key-value格式,一個key對應一個值的狀況下
一、設置key = value:set key value
set baidu http://www.baidu
二、追加一個值到key:append key value
append baidu .com
三、取值:get key
get baidu
四、增長鍵的整數值一次:incr key
set count 0
incr count 【count會變成1】
五、由給定的數量遞增鍵的整數值: incrby key increment
incrby count 100 【count會變成101】
六、返回存儲在鍵的數據類型的值: type key
type baidu 【string】
type count【string】
七、刪除健值:del key
del count
八、key值是否存在:exists key
exists baiduzhiding
九、指定key的過時時間,秒:expire key seconds
expire baidu 100 【沒有設置默認長期有效】
 
 
 
2、List列表
應用場景:高併發的經常使用 好比搶購 要限制成功的前幾我的數。好比twitter的關注列表、粉絲列表等均可以用Redis的list結構來實現,再好比有的應用使用Redis的list類型實現一個簡單的輕量級消息隊列,生產者push,消費者pop/bpop。
一、設置key:LSET key index value
必須對已經存在的list設置,空list會報錯
LSET list 0 item 【list不存在】 ---> (error) ERR no such key
LSET job 0 "play game" ---> OK
二、將一個或多個值插入到列表左邊:LPUSH KEY VALUE1.. VALUEN
若是 key 不存在,一個空列表會被建立並執行 LPUSH 操做。 當 key 存在但不是列表類型時,返回一個錯誤。
lpush list1 redis
lpush list1 hello
三、將一個或多個值插入到列表右邊:RPUSH key value1 [value2]
rpush list1 world
四、獲取列表的長度:LLEN key
llen list1
---> 3
五、從一個列表獲取元素:LRANGE key start stop
lrange list1 0 3
---> 1) "hello"
---> 2) "redis"
---> 3) "world"
六、移除並返回列表中的第一個元素,左邊:LPOP key
lpop list1
---> "hello"
七、移除並返回列表中的最後一個元素,右邊:RPOP key
rpop list1
---> "world"
lrange list1 0 3
---> 1) "redis"
 
 
 
3、Hash(字典,哈希表)
應用場景:假設有多個用戶及對應的用戶信息,能夠用來存儲以用戶ID爲key,將用戶信息序列化爲好比json格式作爲value進行保存好比有分類 要把雞蛋放到一個籃子裏 鴨蛋放一個籃子,那這個籃子的話就是一個hash表名,裏面的雞蛋 和雞蛋位置就是value 和key
一、設置對象指定字段的值:HSET key field value
hset person name jack
hset person age 20
hset person sex famale
二、獲取對象的全部屬性域和值:HGETALL key
hgetall person
---> 1) "name"
---> 2) "jack"
---> 3) "age"
---> 4) "20"
---> 5) "sex"
---> 6) "famale"
三、獲取對象中該field屬性域的值:HGET key field
hget person name
---> jack
四、獲取對象的全部屬性字段:HKEYS key
hkeys person
---> 1) "name"
---> 2) "age"
---> 3) "sex"
五、獲取對象的全部屬性值:HVALS key
hvals person
---> 1) "jack"
---> 2) "20"
---> 3) "famale"
六、刪除對象的一個或幾個屬性域,不存在的屬性將被忽略:HDEL key field[field...]
七、查看對象是否存在該屬性域:HEXISTS key field
八、獲取對象的全部屬性字段的總數:HLEN key
 
 
 
4、Set集合
應用場景:set對外提供的功能與list相似是一個列表的功能,特殊之處在於set是能夠自動排重的,當你須要存儲一個列表數據,又不但願出現重複數據時,set是一個很好的選擇,而且set提供了判斷某個成員是否在一個set集合內的重要接口,這個也是list所不能提供的
一、添加一個或者多個元素到集合(set)裏:SADD key member [member ...
SADD myset "Hello"
SADD myset "World"
二、獲取集合裏面的全部key:SMEMBERS key
SMEMBERS myset
---> 1) "World"
---> 2) "Hello"
三、肯定一個給定的值是一個集合的成員:SISMEMBER key member
SISMEMBER myset "one"
---> 0
四、得到兩個集合的交集:SINTER key [key ...]
 
五、獲取並刪除一個集合裏面的元素:SPOP key [count](不加下標就隨機返回)
 
六、從集合裏刪除一個或多個元素,不存在的元素會被忽略:SREM key member [member ...]
 
 
5、Sorted Set(有序集合)
應用場景:set不是自動有序的,而sorted set能夠經過用戶額外提供一個優先級(score)的參數來爲成員排序,而且是插入有序的,即自動排序。當你須要一個有序的而且不重複的集合列表,那麼能夠選擇sorted set數據結構,好比twitter 的public timeline能夠以發表時間做爲score來存儲,這樣獲取時就是自動按時間排好序的。
一、添加一個或多個成員到有序集合,或者若是它已經存在更新其分數:ZADD key score1 member1 [score2 member2]
zadd dbs 100 redis
zadd dbs 98 memcached
zadd dbs 99 mongodb
zadd dbs 99 leveldb
二、獲得的有序集合成員的數量:ZCARD key
zcard dbs
----> (integer) 4
三、計算一個有序集合成員與給定值範圍內的分數:ZCOUNT key min max
zcount dbs 10 99
----> (integer) 3
四、肯定成員的索引中有序集合:ZRANK key member
zrank dbs leveldb
----> (integer) 1
zrank dbs other
----> (nil)
五、在給定的分數以內刪除全部成員的有序集合:ZREMRANGEBYSCORE key min max
zrangebyscore dbs 98 100
----> 1) "memcached"
----> 2) "leveldb"
----> 3) "mongodb"
----> 4) "redis"
相關文章
相關標籤/搜索