(基本知识)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"