•blpop key1...keyN timeout 從左到右掃描返回對第一個非空list進行lpop操做並返回,好比blpop list1 list2 list3 0 ,若是list不存在,list2,list3都是非空則對list2作lpop並返回從list2中刪除的元素。若是全部的list都是空或不存在,則會阻塞timeout秒,timeout爲0表示一直阻塞。
當阻塞時,若是有client對key1...keyN中的任意key進行push操做,則第一在這個key上被阻塞的client會當即返回。若是超時發生,則返回nil。
•rpoplpush srckey destkey 從srckey對應list的尾部移除元素並添加到destkey對應list的頭部,最後返回被移除的元素值,整個操做是原子的.若是srckey是空
或者不存在返回nil
•
redis
的
set
是
string
類型的無序集合。
•
set
元素最大能夠包含
(2
的
32
次方
-1)
個元素。
•
set
的是經過
hash table
實現的,
hash table
會隨着添加或者刪除自動的調整大小
關於
set
集合類型除了基本的添加刪除操做,其餘有用的操做還包含集合的取並集
(union)
,交集
(intersection)
,差集
(difference)
。經過這些操做能夠很容易的實現
sns
中的好友推薦和
blog
的
tag
功能。
•sadd key member 添加一個string元素到,key對應的set集合中,成功返回1,若是元素以及在集合中返回0,key對應的set不存在返回錯誤
•srem key member 從key對應set中移除給定元素,成功返回1,若是member在集合中不存在或者key不存在返回0,若是key對應的不是set類型的值返回錯誤
•spop key 刪除並返回key對應set中隨機的一個元素,若是set是空或者key不存在返回nil
•srandmember key 同spop,隨機取set中的一個元素,可是不刪除元素
•smove srckey dstkey member 從srckey對應set中移除member並添加到dstkey對應set中,整個操做是原子的。成功返回1,若是member在srckey中不存在返回0,若是key不是set類型返回錯誤
•scard key 返回set的元素個數,若是set是空或者key不存在返回0
•sismember key member 判斷member是否在set中,存在返回1,0表示不存在或者key不存在
•sinter key1 key2...keyN 返回全部給定key的交集
•sinterstore dstkey key1...keyN 同sinter,可是會同時將交集存到dstkey下
•sunion key1 key2...keyN 返回全部給定key的並集
•sunionstore dstkey key1...keyN 同sunion,並同時保存並集到dstkey下
•sdiff key1 key2...keyN 返回全部給定key的差集
•sdiffstore dstkey key1...keyN 同sdiff,並同時保存差集到dstkey下
•smembers key 返回key對應set的全部元素,結果是無序的
Sorted set
•
和
set
同樣
sorted set
也是
string
類型元素的集合,不一樣的是每一個元素都會關聯一個
double
類型的
score
。
sorted set
的實現是
skip list
和
hash table
的混合體。當元素被添加到集合中時,一個元素到
score
的映射被添加到
hash table
中,另外一個
score
到元素的映射被添加到
skip list
並按照
score
排序,因此就能夠有序的獲取集合中的元素。
Sorted set 相關命令
•zadd key score member 添加元素到集合,元素在集合中存在則更新對應score
•zrem key member 刪除指定元素,1表示成功,若是元素不存在返回0
•zincrby key incr member 增長對應member的score值,而後移動元素並保持skip list有序。返回更新後的score值
•zrank key member 返回指定元素在集合中的排名(下標,非score),集合中元素是按score從小到大排序的
•zrevrank key member 同上,可是集合中元素是按score從大到小排序
•zrange key start end 相似lrange操做從集合中取指定區間的元素。返回的是有序結果
•zrevrange key start end 同上,返回結果是按score逆序的
•zrangebyscore key min max 返回集合中score在給定區間的元素
•zcount key min max 返回集合中score在給定區間的數量
•zcard key 返回集合中元素個數
•zscore key element 返回給定元素對應的score
•zremrangebyrank key min max 刪除集合中排名在給定區間的元素
•zremrangebyscore key min max 刪除集合中score在給定區間的元素
Hash
•
redis
hash
是一個
string
類型的
field
和
value
的映射表。
•
hash
特別適合用於存儲對象。相較於將對象的每一個字段存成單個
string
類型。將一個對象存儲在
hash
類型中會佔用更少的內存,而且能夠更方便的存取整個對象。
Hash相關命令
•hset key field value 設置hash field爲指定值,若是key不存在,則先建立
•hget key field 獲取指定的hash field
•hmget key filed1....fieldN 獲取所有指定的hash filed
•hmset key filed1 value1 ... filedN valueN 同時設置hash的多個field
•hincrby key field integer 將指定的hash filed 加上給定值
•hexists key field 測試指定field是否存在
•hdel key field 刪除指定的hash field
•hlen key 返回指定hash的field數量
•hkeys key 返回hash的全部field
•hvals key 返回hash的全部value
hgetall 返回hash的全部filed和value