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 ...]