Redis Set集合

2022-06-20 19:44:47 浏览数 (1)

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

集合内元素操作

1. 向集合中添加元素

代码语言:javascript复制
127.0.0.1:6379> sadd key v1
(integer) 1
127.0.0.1:6379> sadd key v2
(integer) 1
127.0.0.1:6379> sadd key v1
(integer) 0

2. 返回集合中的所有元素

代码语言:javascript复制
127.0.0.1:6379> smembers key
1) "v1"
2) "v2"

3. 返回集合中的元素总数

代码语言:javascript复制
127.0.0.1:6379> scard key
(integer) 2

4. 判断集合中是否包含指定元素

代码语言:javascript复制
127.0.0.1:6379> sismember key v1
(integer) 1
127.0.0.1:6379> sismember key v3
(integer) 0

5. 随机移除并返回集合中的一个元素

代码语言:javascript复制
127.0.0.1:6379> sadd key v3
(integer) 1
127.0.0.1:6379> sadd key v4
(integer) 1
127.0.0.1:6379> spop key
"v3"
127.0.0.1:6379> smembers key
1) "v1"
2) "v4"
3) "v2"
127.0.0.1:6379> scard key
(integer) 3

6. 随机返回集合中指定数量的元素,但不移除

代码语言:javascript复制
127.0.0.1:6379> srandmember key
"v1"
127.0.0.1:6379> srandmember key 2
1) "v2"
2) "v4"
127.0.0.1:6379> smembers key
1) "v1"
2) "v4"
3) "v2"

7. 移除集合元素

代码语言:javascript复制
127.0.0.1:6379> srem key v1
(integer) 1
127.0.0.1:6379> srem key v5
(integer) 0
127.0.0.1:6379> smembers key
1) "v4"
2) "v2"

8. 迭代集合中的元素

代码语言:javascript复制
127.0.0.1:6379> sscan key 0 match v*
1) "0"
2) 1) "v4"
   2) "v2"
127.0.0.1:6379> sscan key 0 match a*
1) "0"
2) (empty list or set)

集合间操作

先准备第二个集合

代码语言:javascript复制
127.0.0.1:6379> sadd key1 v2
(integer) 1
127.0.0.1:6379> sadd key1 s1
(integer) 1
127.0.0.1:6379> sadd key1 s2
(integer) 1
127.0.0.1:6379> smembers key1
1) "s1"
2) "s2"
3) "v2"

127.0.0.1:6379> smembers key
1) "v4"
2) "v2"

1. 返回给定所有集合的差集

代码语言:javascript复制
127.0.0.1:6379> sdiff key key1
1) "v4"

2. 返回给定所有集合的差集并存储在指定集合中

代码语言:javascript复制
127.0.0.1:6379> sdiffstore key2 key key1
(integer) 1
127.0.0.1:6379> smembers key2
1) "v4"

3. 返回多个给定集合的交集

代码语言:javascript复制
127.0.0.1:6379> sinter key key1
1) "v2"

4. 返回多个集合的交集并存储在指定集合中

代码语言:javascript复制
127.0.0.1:6379> sinterstore key3 key key1
(integer) 1
127.0.0.1:6379> smembers key3
1) "v2"

5. 返回所有给定集合的并集

代码语言:javascript复制
127.0.0.1:6379> sunion key key1
1) "s1"
2) "s2"
3) "v2"
4) "v4"

6. 返回给定集合的并集存储在指定集合中

代码语言:javascript复制
127.0.0.1:6379> sunionstore key4 key key1
(integer) 4
127.0.0.1:6379> smembers key4
1) "s1"
2) "s2"
3) "v2"
4) "v4"

7. 将元素从某一集合中移动到目标集合中

代码语言:javascript复制
127.0.0.1:6379> smove key1 key s1
(integer) 1
127.0.0.1:6379> smembers key1
1) "v2"
2) "s2"
127.0.0.1:6379> smembers key
1) "s1"
2) "v4"
3) "v2"

了解了以上这些命令基本可以搞定你80%的工作了!~

0 人点赞