redis 集合set类型命令

备注:测试版本 redis 4.0.9

集合(Set)命令概述

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

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

命令概述
Sadd向集合添加一个或多个成员
Scard获取集合的成员数
Sdiff返回给定所有集合的差集
Sdiffstore返回给定所有集合的差集并存储在 destination 中
Sinter返回给定所有集合的交集
Sinterstore返回给定所有集合的交集并存储在 destination 中
Sismember判断 member 元素是否是集合 key 的成员
Smembers返回集合中的所有成员
Smove将 member 元素从 source 集合移动到 destination 集合
Spop移除并返回集合中的一个随机元素
Srandmember返回集合中一个或多个随机数
Srem移除集合中一个或多个成员
Sunion返回所有给定集合的并集
Sunionstore所有给定集合的并集存储在 destination 集合中
Sscan迭代集合中的元素

1.1 SADD命令

语法:

SADD key member1 [member2] 向集合添加一个或多个成员

测试记录:

-- 返回值是添加元素的个数 重复的元素不会被重复添加,这点与list有区别
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 0
127.0.0.1:6379> smembers my_db
1) "Redis"
2) "MySQL"
3) "Oracle"
127.0.0.1:6379> 

1.2 SCARD命令

语法:

SCARD key 获取集合的成员数

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> scard my_db
(integer) 3
127.0.0.1:6379> 

1.3 SDIFF命令

语法:

SDIFF key1 [key2] 返回给定所有集合的差集

测试记录:

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MongoDB
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> sdiff my_db my_db2
1) "MySQL"
2) "Oracle"
127.0.0.1:6379> 

1.4 SDIFFSTORE命令

语法:

SDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MondbDB
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> sdiffstore my_db3 my_db my_db2
(integer) 2
127.0.0.1:6379> smembers my_db3
1) "MySQL"
2) "Oracle"
127.0.0.1:6379> 

1.5 SINTER命令

语法:

SINTER key1 [key2] 返回给定所有集合的交集

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MondbDB
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> sinter my_db my_db2
1) "Redis"
127.0.0.1:6379> 

1.6 SINTERSTORE 命令

语法:

SINTERSTORE destination key1 [key2] 返回给定所有集合的交集并存储在 destination 中

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MondbDB
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MondbDB
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> sinter my_db my_db2
1) "Redis"
127.0.0.1:6379> 

1.7 SISMEMBER命令

语法:

SISMEMBER key member 判断 member 元素是否是集合 key 的成员

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sismember my_db Oracle
(integer) 1
127.0.0.1:6379> sismember my_db MongoDB
(integer) 0

1.8 SMEMBERS命令

语法:

SMEMBERS key 返回集合中的所有成员

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> smembers my_db
1) "Redis"
2) "MySQL"
3) "Oracle"
127.0.0.1:6379> 

1.9 SMOVE命令

语法:

SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> smove my_db my_db2 Oracle
(integer) 1
127.0.0.1:6379> smembers my_db
1) "Redis"
2) "MySQL"
127.0.0.1:6379> smembers my_db2
1) "Oracle"
127.0.0.1:6379> 

1.10 SPOP命令

语法:

SPOP key 移除并返回集合中的一个随机元素

测试记录

127.0.0.1:6379> del my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> smembers my_db
1) "Redis"
2) "MySQL"
3) "Oracle"
127.0.0.1:6379> spop my_db
"Oracle"
127.0.0.1:6379> smembers my_db
1) "Redis"
2) "MySQL"
127.0.0.1:6379> 

1.11 SRANDMEMBER命令

语法:

SRANDMEMBER key [count] 返回集合中一个或多个随机数

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> srandmember my_db
"MySQL"
127.0.0.1:6379> srandmember my_db 2
1) "MySQL"
2) "Oracle"
127.0.0.1:6379> srandmember my_db 4
1) "Redis"
2) "MySQL"
3) "Oracle"
127.0.0.1:6379> 

1.12 SREM命令

语法:

SREM key member1 [member2] 移除集合中一个或多个成员

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> srem my_db Oracle
(integer) 1
127.0.0.1:6379> srem my_db Oracle Redis
(integer) 1
127.0.0.1:6379> 

1.13 SUNION命令

语法:

SUNION key1 [key2] 返回所有给定集合的并集

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 0
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MongoDB
(integer) 1
127.0.0.1:6379> sunion my_db my_db2
1) "Redis"
2) "MySQL"
3) "MongoDB"
4) "Oracle"
127.0.0.1:6379> 

1.14 SUNIONSTORE命令

语法:

SUNIONSTORE destination key1 [key2] 所有给定集合的并集存储在 destination 集合中

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 0
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MongoDB
(integer) 1
127.0.0.1:6379> sunionstore my_db3 my_db my_db2
(integer) 4
127.0.0.1:6379> smembers my_db3
1) "Redis"
2) "MySQL"
3) "MongoDB"
4) "Oracle"
127.0.0.1:6379> 

1.15 SSCAN命令

语法:

SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素

测试记录

127.0.0.1:6379> del key my_db
(integer) 1
127.0.0.1:6379> del key my_db2
(integer) 1
127.0.0.1:6379> sadd my_db Oracle
(integer) 1
127.0.0.1:6379> sadd my_db MySQL
(integer) 1
127.0.0.1:6379> sadd my_db Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 Redis
(integer) 1
127.0.0.1:6379> sadd my_db2 MongoDB
(integer) 1
127.0.0.1:6379> sscan my_db 0 match O*
1) "0"
2) 1) "Oracle"
127.0.0.1:6379> sscan my_db2 0 match O*
1) "0"
2) (empty list or set)
127.0.0.1:6379> 

参考

1.https://www.redis.net.cn/tutorial/3505.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值