Redis Set

原创
2016/09/29 09:32
阅读数 37

Set

数学集合,元素自动过滤重复功能,不会保存元素添加顺序。丰富的数学集合操作,交集、并集,差集,尤其是判断是否包含 contains,非常高效。

 

1、基本操作(CURD)

>sadd key value[value ...]

将一个或多个 value元素加入到集合 key 当中,已经存在于集合的 value元素将被忽略。

 

>spop key

移除并返回集合中的一个随机元素。如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 srandmember 命令。

 

>srem key value [ value...]

移除集合 key 中的一个或多个 value 元素,不存在的 value 元素会被忽略。

 

>scard key

返回集合 key 的基数(集合中元素的数量),scard 是数学上一个求集合个数的运算符号。

 

>smembers key

返回集合 key 中的所有成员。不存在的 key 被视为空集合,如果元素很多可能导致IO阻塞,最好使用的scan进行批量获取,而不是获取全部。

 

>srandmember key [count]

只提供了 key 参数,那么返回集合中的一个随机元素。

count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。

count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

 

>sismember key value

判断 value 元素是否集合 key 的成员,注意它的时间符合度是O(1),所以他比List的遍历比较元素是否相等要快很多,而且这是原子操作。

 

2、集合运算

>sdiff key [key ...]

返回所有给定集合的差集(存在第一个集合中但不存在其他任何一个集合中的成员)。不存在的 key 被视为空集。

 

>sdiffstore destination key [key ...]

返回所有给定集合的差集,同时将结果保存到 destination 集合,如果 destination 集合已经存在,则将其覆盖。

 

>sunion key [key ...]

返回所有给定集合的并集。不存在的 key 被视为空集。

 

>sunionstore destination key [key ...]

返回所有给定集合的并集,同时将结果保存到 destination 集合,如果 destination 集合已经存在,则将其覆盖。

 

>sinter key [key ...]

返回所有给定集合的交集。不存在的 key 被视为空集。当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。

 

>sinterstore destination key [key ...]

返回所有给定集合的交集,同时将结果保存到 destination 集合,如果 destination 集合已经存在,则将其覆盖。

 

3、移动

>smove source destination value

原子性操作,将 value 元素从 source 集合移动到 destination 集合。

 

>sscan key cursor [MATCH pattern] [COUNT count]

根据游标的位置获取指定的数量的元素。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部