redis-set常用操作命令

# 添加元素
127.0.0.1:6379[3]> sadd name lili
(integer) 1
127.0.0.1:6379[3]> sadd name nana
(integer) 1

# 批量添加元素
127.0.0.1:6379[3]> sadd name qiqi sansan
(integer) 2

# 根据key查看 set中元素的个数
127.0.0.1:6379[3]> scard name
(integer) 4

# 根据set的key 查看具体的元素
127.0.0.1:6379[3]> SMEMBERS name
1) "sansan"
2) "nana"
3) "qiqi"
4) "lili"

# 判断某个元素是否是集合中的值
127.0.0.1:6379[3]> SISMEMBER name lili
(integer) 1
127.0.0.1:6379[3]> sismember name evelyn
(integer) 0

# 随机取出一个元素
127.0.0.1:6379[3]> SRANDMEMBER name
"qiqi"
127.0.0.1:6379[3]> SRANDMEMBER name
"qiqi"
127.0.0.1:6379[3]> SRANDMEMBER name
"nana"

# 随机获取出2个元素,但不删除
127.0.0.1:6379[3]> SRANDMEMBER name 2
1) "sansan"
2) "nana"
127.0.0.1:6379[3]> SRANDMEMBER name 2
1) "sansan"
2) "qiqi"
127.0.0.1:6379[3]> smembers name
1) "sansan"
2) "nana"
3) "qiqi"
4) "lili"

# 随机删除并获取一个元素
127.0.0.1:6379[3]> spop name
"sansan"
127.0.0.1:6379[3]> smembers name
1) "nana"
2) "qiqi"
3) "lili"

# 随机删除2个元素
127.0.0.1:6379[3]> spop name 2
1) "lili"
2) "qiqi"
127.0.0.1:6379[3]> smembers name
1) "nana"

127.0.0.1:6379[3]> SMEMBERS name
1) "evelyn"
2) "lili"
127.0.0.1:6379[3]> sadd name zhangsan1
(integer) 1
127.0.0.1:6379[3]> sadd name lisi1
(integer) 1
127.0.0.1:6379[3]> smemebers
(error) ERR unknown command `smemebers`, with args beginning with: 
127.0.0.1:6379[3]> smembers name
1) "zhangsan1"
2) "evelyn"
3) "lisi1"
4) "lili"

# 删除set中的指定1个元素
127.0.0.1:6379[3]> srem name evelyn
(integer) 1
127.0.0.1:6379[3]> smembers name
1) "zhangsan1"
2) "lisi1"
3) "lili"

# 删除set中指定的多个元素
127.0.0.1:6379[3]> srem name lili1 lili
(integer) 1
127.0.0.1:6379[3]> smembers name
1) "zhangsan1"
2) "lisi1"
127.0.0.1:6379[3]> srem name lisi1 zhangsan1
(integer) 2
127.0.0.1:6379[3]> smembers
(error) ERR wrong number of arguments for 'smembers' command
127.0.0.1:6379[3]> smembers name
(empty list or set)
127.0.0.1:6379[3]> 



127.0.0.1:6379[3]> sadd set1 a b c d
(integer) 4
127.0.0.1:6379[3]> sadd set2 c d e f
(integer) 4
127.0.0.1:6379[3]> SDIFF set1 a b h i
1) "a"
2) "b"
3) "d"
4) "c"

# 以set1为参照 获取set1和set2 的差集
127.0.0.1:6379[3]> sdiff set1 set2
1) "a"
2) "b"

# 以set2为参照获取set2和set1的差集
127.0.0.1:6379[3]> sdiff set2 set1
1) "e"
2) "f"

#以set1为参照获取set1和set2的差集,并将差集存储到set2中
127.0.0.1:6379[3]> SDIFFSTORE set2 set1 set2
(integer) 2
# set2中原有的值 c、d、e、f被差集 a b 替换
127.0.0.1:6379[3]> smembers set2
1) "a"
2) "b"

#以set1为基获取set1和set2的差集 并存储到新集合set3中
# 新集合set3如果存在,里边的值会被覆盖,否则会创建新的集合
127.0.0.1:6379[3]> SDIFFSTORE set3 set1 set2
(integer) 2
127.0.0.1:6379[3]> SMEMBERS set3
1) "d"
2) "c"
127.0.0.1:6379[3]> 


127.0.0.1:6379[3]> sadd set1 a b c d e
(integer) 5
127.0.0.1:6379[3]> sadd set2 b c d e f
(integer) 5

# 获取2个集合的交集
127.0.0.1:6379[3]> SINTER set1 set2
1) "d"
2) "b"
3) "c"
4) "e"
# 将2个集合的交集存储到新的集合
127.0.0.1:6379[3]> SINTERSTORE set3 set1 set2
(integer) 4
127.0.0.1:6379[3]> SMEMBERS set3
1) "e"
2) "b"
3) "d"
4) "c"
127.0.0.1:6379[3]> 

# 移动元素到另一个集合
127.0.0.1:6379[3]> sadd set1 a b c
(integer) 3
127.0.0.1:6379[3]> smove set1 newset b
(integer) 1
127.0.0.1:6379[3]> SMEMBERS newset
1) "b"

# 某个元素是否是指定set中的成员
127.0.0.1:6379[3]> SISMEMBER set1 a
(integer) 1
127.0.0.1:6379[3]> SISMEMBER set1 g
(integer) 0
127.0.0.1:6379[3]> 

#### 使用场景
- 抽奖spop
- 微博共同关注 sdiff

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值