(六)Redis数据类型之Set
sadd
sadd key member [member1 …]
给集合内新增成员,若集合不存在则创建集合并新增成员。
1 | sadd set one |
srem
srem key member [member1 …]
移除元素
smove
smove source destination member
1 | Docker:0>sadd set1 dick joe nick joe |
smembers
smembers key
查看成员
1 | Docker:0>smembers set2 |
scard
scard key
返回集合中成员的个数
1 | Docker:0>scard set2 |
srandmember
srandmember key [count]
从集合中随机返回指定个数的成员
1 | Docker:0>srandmember set2 2 |
sismember
sismember key member
判断是否存在于指定key的集合中
1 | Docker:0>smembers set1 |
spop
spop key
从集合中随机弹出一个成员,返回该成员并从集合中删除该成员
1 | Docker:0>smembers set2 |
sinter
sinter key [key2 key3 …]
取多个集合的交集,返回这些集合中共同拥有的成员
1 | Docker:0>smembers setA |
sinterstore
sinterstore destination key [key1 key2 …]
取多个集合的交集∩, 结果存于新的set
1 | Docker:0>sinterstore rest_A_B_C setA setB setC |
sunion
sunion key [key1 key2 …]
求并集∪,相同的成员会被去重
1 | Docker:0>sunion setA setB setC |
sunionstore
sunionstore destination key [key …]
将多个集合的并集的结果保存为一个新的集合destination ,返回新集合的成员个数。
1 | Docker:0>sunionstore union_A_B_C setA setB setC |
sdiff
sdiff key [key1 key2 …]
取多个集合的差集,以最左边的为主集合,返回左集合中有而其他集合没有的成员
1 | Docker:0>smembers setA |
sdiffstore
sdiffstore destination key [key1 key2 …]
将多个集合的差集的结果保存为一个新的集合destination,返回新集合的成员个数
1 |
|
set 集合结合具体业务场景:
应用场景
- 抽奖:随机返回指定个数成员
- 共同好友:取交集
- 好友推荐:根据标签取交集,交集的成员个数大于某个阈值触发推荐动作