Redis 笔记(06)— set 类型(向集合添加元素、获取集合元素个数、判断集合中是否包含某个元素、删除给定元素、返回集合中所有元素、计算集合的交集、并集、差集)

Redisset 集合内部的键值对是无序的唯一的。它的内部实现相当于一个特殊的字典,字典中所有的 value 都是一个值 NULL 。当集合中最后一个元素移除之后,数据结构自动删除,内存被回收。

set 结构可以用来存储活动中奖的用户 ID,因为有去重功能,可以保证同一个用户不会中奖两次。

1. set 类型相关命令

命令说明
sadd key member添加一个string元素到key对应的set集合中
scard key返回set的元素个数
sismember key member判断member是否在set中
srem key member从key对应set中移除给定元素
smembers key返回key对应set的所有元素,结果是无序的
spop key[count]删除并取得一个集合里面的元素
srandmember key [count]从集合中随机获取一个key
smove p1 p2 member从p1对应set中移除给定元素并添加到p2对应set中
sinter key p1 p2…pN返回所有给定key的交集
sunion key p1 p2…pN返回所有给定key的并集
sdiff key p1 p2…pN返回所有给定key 的差集
sinterstore destination key [key….]获取两个集合的交集,并存储在一个关键的结果集
sunionstore destination key [key…]合并set集合,并将结果存入新的set里面
sdifferstore destination key[key…]获取队列的差集,并存储在一个新的结果集
smove source destination member移动集合里的一个key到另一个集合

2. set 类型 使用示例

127.0.0.1:6379> sadd set "east"
(integer) 1
127.0.0.1:6379> sadd set "west"
(integer) 1
127.0.0.1:6379> sadd set "south"
(integer) 1
127.0.0.1:6379> sadd set "north"
(integer) 1
127.0.0.1:6379> scard set
(integer) 4
127.0.0.1:6379> sismember set "middle"
(integer) 0
127.0.0.1:6379> sismember set "south"
(integer) 1
127.0.0.1:6379> sadd set "middle"
(integer) 1
127.0.0.1:6379> scard set
(integer) 5
127.0.0.1:6379> smembers set	# 注意顺序,和插入的并不一致,因为 set 是无序的
1) "east"
2) "south"
3) "north"
4) "west"
5) "middle"
127.0.0.1:6379> spop set 
"middle"
127.0.0.1:6379> srandmember set
"east"
127.0.0.1:6379> srandmember set
"east"
127.0.0.1:6379> srandmember set
"west"
127.0.0.1:6379> scard set
(integer) 4
127.0.0.1:6379> sadd set_a 1
(integer) 1
127.0.0.1:6379> sadd set_a 2
(integer) 1
127.0.0.1:6379> sadd set_a 3
(integer) 1
127.0.0.1:6379> sadd set_b 2
(integer) 1
127.0.0.1:6379> sadd set_b 3
(integer) 1
127.0.0.1:6379> sadd set_b 4
(integer) 1
127.0.0.1:6379> smove set set_a east
(integer) 1
127.0.0.1:6379> smembers set_a
1) "east"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> sinter set_a set_b
1) "2"
2) "3"
127.0.0.1:6379> sunion set_a set_b
1) "2"
2) "4"
3) "east"
4) "3"
5) "1"
127.0.0.1:6379> sdiff set_a set_b
1) "east"
2) "1"
127.0.0.1:6379> smove set set_a
(error) ERR wrong number of arguments for 'smove' command
127.0.0.1:6379> smove set set_a west
(integer) 1
127.0.0.1:6379> smembers set_a
1) "east"
2) "3"
3) "2"
4) "1"
5) "west"
127.0.0.1:6379> 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值