Redis数据类型:集合set

  • 类型操作



Redis中的集合是无序不可重复的,和列表一样,在插入和删除时,判断是否存在某元素效率是很高的。集合最大的优势在于可以进行交集、并集和差集操作。set可包含的最大元素数量是4294967295。


应用场景:


1.利用交集求共同好友。


2.利用唯一性,可以统计访问网站的所有独立IP。


3.根据求交集运算,进行好友推荐。

类型操作

1.给集合添加一个或多个元素。

SADD key member [member ...]

2.获取集合的所有元素。

SMEMBERS key

3.获取集合中的元素个数。

SCARD key

4.从集合中删除一个或多个元素。(如果元素不存在则忽略)

SREM key member [member ...]

5.判断是否存在member这个元素。(如果存在返回1,不存在返回0)

SISMEMBER key member

6.随机弹出(删除)元素。(count只能是正整数或者0,不能是负整数,为0时表示删除0个元素)

SPOP key [count]

应用场景:比如,公司年会抽奖环节(每次抽中一个员工就移除)。

7.随机获取(不删除)元素。(count可以是正整数、0或负整数,为0时表示获取0个元素)

SRANDMEMBER key [count]

说明:
(1)count大于0时,获取的元素一定不会重复。应用场景:大公司年会抽奖环节,奖品少人多而且保证每个人最多只会中奖一次的情况。
(2)count小于0时,获取的元素可能会重复。应用场景:小公司年会抽奖环节,奖品多人少,有的人会中奖多次的情况。

8.移动指定集合的一个元素到目标集合中。(如果目标集合中有这个元素则忽略)(目标集合中原有的元素不清空)

SMOVE source destination member

9.获取多个集合中的交集。

SINTER key [key ...]

10.获取多个集合中的交集,并把结果保存到目标集合中。(目标集合中原有的元素都清空)

SINTERSTORE destination key [key ...]

11.获取多个集合中的并集。

SUNION key [key ...]

12.获取多个集合中的并集,并把结果保存到目标集合中。(目标集合中原有的元素都清空)

SUNIONSTORE destination key [key ...]

13.获取多个集合中的差集。(可按需调整key的先后顺序)

SDIFF key [key ...]

14.获取多个集合中的差集,并把结果保存到目标集合中。(可按需调整key的先后顺序)(目标集合中原有的元素都清空)

SDIFFSTORE destination key [key ...]