redis set 结构

redis set 结构

向 set 中添加元素

sadd key value [value2 value3....]
例如:
sadd gender male female
127.0.0.1:6379> sadd gender male female
(integer) 2
127.0.0.1:6379> sadd gender yao yao
(integer) 1   # set 是不可以重复的 所以此处只有一个进入set

查看 set 中的元素

smembers key
例如:
smembers gender
127.0.0.1:6379> smembers gender
1) "female"
2) "male"
3) "yao"

删除 set 中方的元素

srem key
例如:
srem gemder a
127.0.0.1:6379> srem gender yao
(integer) 1
127.0.0.1:6379> srem gender x c
(integer) 0
127.0.0.1:6379> srem gender male x y
(integer) 1

从 set 中随机 pop 出元素

spop key
例如:
spop gender
127.0.0.1:6379> spop gender
"female"

从 set 中随机抽取 n 个元素 默认 是 1 个

srandmember key n  # n s是要抽取元素的个数
例如:
srandmember gender 2
127.0.0.1:6379> srandmember gender 2
1) "g"
2) "e"

查看 是否是 set 中的数据

sismember key value
例如:
sismember gender r
127.0.0.1:6379> sismember gender r
(integer) 0

查看 set 中的元素个数

scard key
例如:
scard gender
127.0.0.1:6379> scard gender
(integer) 7

将 A set 中的元素 移动到 B set 中

smove source destination value  #  将 value 从 source 中 移动到 destination 中 
例如:
smove upper lower A
127.0.0.1:6379> sadd upper A B C D
(integer) 4
127.0.0.1:6379> sadd lower E F G H
(integer) 4
127.0.0.1:6379> smove upper lower A
(integer) 1
127.0.0.1:6379> smembers upper
1) "D"
2) "B"
3) "C"

Set 的 并、交、差 计算

sinter key1 key2 [key3 key4...]  key1 和 key2 对应集合的交积
例如:
sinter lisi wang

sunion key1 key2 [key3 key4...]  key1 和 key2 对应集合的并积
例如:
sunion lisi wang

sdiff key1 key2 [key3 key4...]  key1 对 key2 对应集合的差积
例如:
sdiff lisi wang
127.0.0.1:6379> sadd lisi a b c d
(integer) 4
127.0.0.1:6379> sadd wang a c d e f
(integer) 5
127.0.0.1:6379> sinter lisi wang
1) "d"
2) "a"
3) "c"
127.0.0.1:6379> sunion lisi wang
1) "f"
2) "e"
3) "c"
4) "d"
5) "b"
6) "a"
127.0.0.1:6379> sdiff lisi wang
1) "b"

将 set 对交集计算输出到另一个集合中

sinterstore destination key1 key2 [key3 key4...]
例如:
sinterstore res lisi wang
127.0.0.1:6379> sinterstore res lisi wang
(integer) 3
posted @ 2020-04-26 14:21  sha_ka  阅读(78)  评论(0编辑  收藏  举报