(基本知识)Redis 集合(Set)相关命令函数

Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据

1.Sadd 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略  返回被添加到集合中的新元素的数量,不包括被忽略的元素

127.0.0.1:6379> get yset
(nil)
127.0.0.1:6379> sadd yset q1 q2 q3
(integer) 3
127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3"
127.0.0.1:6379>

2.Scard :返回集合中元素的数量  key不存返回0

127.0.0.1:6379> scard yset
(integer) 3
127.0.0.1:6379> scard ysetd
(integer) 0
127.0.0.1:6379> 

3.Sdiff :返回给定集合之间的差集。不存在的集合 key 将视为空集  差集取第一个key中有的 其他key中没有的

127.0.0.1:6379> sadd ysetd q1 b1 b2
(integer) 3
127.0.0.1:6379> sdiff yset ysetd
1) "q2"
2) "q3"
127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3"
127.0.0.1:6379> 

4.Sdiffstore : 将给定集合之间的差集存储在指定的集合中。如果指定的集合 key 已存在,则会被覆盖   返回结果集中的元素数量

127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3" 
127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "b1"
127.0.0.1:6379> sdiffstore thp yset ysetd
(integer) 2
127.0.0.1:6379> smembers thp
1) "q2"
2) "q3"
127.0.0.1:6379> 

5.Sinter 返回给定所有给定集合的交集  不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集

127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3"
127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "b1"
127.0.0.1:6379> sinter yset ysetd
1) "q1"
127.0.0.1:6379> 

6.Sismember 判断成员元素是否是集合的成员   如果成员元素是集合的成员,返回 1  否则返回0

127.0.0.1:6379> sismember yset q1
(integer) 1
127.0.0.1:6379> sismember yset q15
(integer) 0
127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3"
127.0.0.1:6379> 

7.Smembers 返回集合中的所有的成员。 不存在的集合 key 被视为空集合

127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3"
127.0.0.1:6379> 

8.Smove 命令将指定成员 member 元素从 source 集合移动到 destination 集合

127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
3) "q3"
127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "b1"
127.0.0.1:6379> smove yset ysetd q3
(integer) 1
127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "q3"
4) "b1"
127.0.0.1:6379> 

9.Sinterstore 将给定集合之间的交集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖

127.0.0.1:6379> smembers yset
1) "q1"
2) "q2"
127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "q3"
4) "b1"
127.0.0.1:6379> sinterstore opq yset ysetd
(integer) 1
127.0.0.1:6379> smembers opq
1) "q1"
127.0.0.1:6379> 

10.Spop :用于移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素 可以设置移除的数量

127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "q3"
4) "b1"
127.0.0.1:6379> spop ysetd
"b1"
127.0.0.1:6379> smembers ysetd
1) "q1"
2) "b2"
3) "q3"
127.0.0.1:6379> spop ysetd 2
1) "b2"
2) "q3"
127.0.0.1:6379> smembers ysetd
1) "q1"
127.0.0.1:6379> 

11.Srandmember 用于返回集合中的一个随机元素  而不对集合进行任何改动

127.0.0.1:6379> sadd yset a1 a2 a3 a4 a5 a6
(integer) 6
127.0.0.1:6379> smembers yset
1) "a2"
2) "a1"
3) "a4"
4) "a6"
5) "a5"
6) "a3"
127.0.0.1:6379> srandmember yset
"a6"
127.0.0.1:6379> srandmember yset 2
1) "a3"
2) "a6"
127.0.0.1:6379> smembers yset
1) "a4"
2) "a6"
3) "a5"
4) "a3"
5) "a1"
6) "a2"
127.0.0.1:6379> 

12.Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略  返回被成功移除的元素的数量,不包括被忽略的元素

127.0.0.1:6379> smembers yset
1) "a4"
2) "a6"
3) "a5"
4) "a3"
5) "a1"
6) "a2"
127.0.0.1:6379> srem yset a1
(integer) 1
127.0.0.1:6379> smembers yset
1) "a4"
2) "a6"
3) "a5"
4) "a3"
5) "a2"
127.0.0.1:6379> srem yset a2 a3
(integer) 2
127.0.0.1:6379> smembers yset
1) "a4"
2) "a6"
3) "a5"
127.0.0.1:6379> 

13.Sunion 返回给定集合的并集。不存在的集合 key 被视为空集

127.0.0.1:6379> sadd kk a1 a2 a3
(integer) 3
127.0.0.1:6379> sadd ll a2 a3 a4
(integer) 3
127.0.0.1:6379> sunion kk ll
1) "a1"
2) "a2"
3) "a4"
4) "a3"
127.0.0.1:6379> 

14.Sunionstore 将给定集合的并集存储在指定的集合 destination 中。如果 destination 已经存在,则将其覆盖

127.0.0.1:6379> smembers kk
1) "a3"
2) "a2"
3) "a1"
127.0.0.1:6379> smembers ll
1) "a4"
2) "a3"
3) "a2"
127.0.0.1:6379> sunionstore op kk ll 
(integer) 4
127.0.0.1:6379> smembers op
1) "a1"
2) "a2"
3) "a4"
4) "a3"
127.0.0.1:6379> 

15.Sscan 命令用于迭代集合中键的元素   返回按照正则匹配出的元素

127.0.0.1:6379> smembers op
1) "a1"
2) "a2"
3) "a4"
4) "a3"
127.0.0.1:6379> sscan op 0 match a*
1) "0"
2) 1) "a4"
   2) "a3"
   3) "a1"
   4) "a2"
posted @ 2020-01-15 17:12  微刻时光  阅读(346)  评论(0编辑  收藏  举报