•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