# 添加元素
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
redis-set常用操作命令
最新推荐文章于 2023-04-24 12:43:34 发布