Redis常用数据类型——set十三个常用命令【这一篇就够了】

一、前言

Redis的set相当于Java语言里面的HashSet,它内部键值对是无序的、唯一的。它的内部实现相当于一个特殊的字典,字典中所有的value都是一个值NULL。

还有相关命令有需要的可以看一下

Redis中的Hash类型12个常用命令(图文例子)
Redis中的String类型常用方法(图文例子)
Redis常用数据类型——list九大常用命令(图文例子)

二、sadd命令

作用:向set中添加元素,可以一次添加多个
格式:sadd key member [member …]

举例

127.0.0.1:6379> sadd student xiaoming
(integer) 1
## 查看set中所有的元素
127.0.0.1:6379> smembersstudent
1) "xiaoming"
127.0.0.1:6379> sadd student xiaohong xiaoliang
(integer) 2
## 查看set中所有的元素
127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaoming"
3) "xiaohong"

三、smembers 命令

作用:获取set集合中所有的元素
格式:smembers key

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaoming"
3) "xiaohong"

四、srem命令

作用:删除set集合中的元素,可以一次删除多条
格式:srem key member [member …]

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaoming"
3) "xiaohong"
127.0.0.1:6379> srem student xiaoming
(integer) 1
127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaohong"

五、scard命令

作用:获取set集合中元素的个数
格式: scard key

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaohong"
127.0.0.1:6379> scard student
(integer) 2

六、spop命令

作用:输入的元素个数,并随机删除返回删除的元素
格式:spop key [count]

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "4"
3) "2"
4) "3"
5) "1"
127.0.0.1:6379> spop student 2
1) "4"
2) "2"
127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "3"
3) "1"

七、sismember命令

作用:判断元素是否在集合中,存在返回1,否则返回0
格式: sismember key member

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "3"
3) "1"
127.0.0.1:6379> sismember student xiaoliang
(integer) 1
127.0.0.1:6379> sismember student xiaoliang1
(integer) 0

八、sdiff命令

作用:求两个set集合的差集,返回第一个set里面的元素,而不在后面任何set集合里面的元素(求前面的set)
格式: sdiff key [key …]

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "3"
3) "1"
127.0.0.1:6379> smembers student1
1) "xiaoliang"
2) "4"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> sdiff student student1
1) "3"
127.0.0.1:6379> sdiff student1 student
1) "2"
2) "4"
3) "5"

九、sdiffstore命令

作用:求差集,同上的解释,比上面多的就是把求得差集保存在另一个set集合中
格式:sdiffstore destination key [key …]

举例

127.0.0.1:6379> sdiffstore student2 student1 student
(integer) 3
127.0.0.1:6379> smembers student2
1) "2"
2) "4"
3) "5"

十、sinter命令

作用:求两个set集合的交集元素
格式:sinter key [key …]

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "3"
3) "1"
127.0.0.1:6379> smembers student1
1) "xiaoliang"
2) "4"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> sinter student student1
1) "xiaoliang"
2) "1"

十一、sinterstore命令

作用:求两个set集合的交集元素,并保存到另外的set集合中
格式:sinterstore destination key [key …]

举例

127.0.0.1:6379> sinterstore student3 student1 student
(integer) 2
127.0.0.1:6379> smembers student3
1) "xiaoliang"
2) "1"

十二、sunion命令

作用:求两个set集合的并集
格式: sunion key [key …]

举例

127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "3"
3) "1"
127.0.0.1:6379> smembers student1
1) "xiaoliang"
2) "4"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> sunion student student1
1) "xiaoliang"
2) "4"
3) "2"
4) "3"
5) "1"
6) "5"

十三、sunionstore命令

作用:求两个set集合的并集,并保存到另外的set集合中
格式: sunionstore destination key [key …]

举例

127.0.0.1:6379> sunionstore student4 student1 student
(integer) 6
127.0.0.1:6379> smembers student4
1) "xiaoliang"
2) "4"
3) "2"
4) "3"
5) "1"
6) "5"

十四、smove命令

作用:移动元素从源set集合移动到目标set集合中
格式: smove source destination member
参数解释:
source :源set集合
destination: 目标set集合
member:要要移动的值

举例

## 把元素3从student 集合中移动到student1中
127.0.0.1:6379> smove student student1 3
(integer) 1
127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "1"
127.0.0.1:6379> smembers student1
1) "xiaoliang"
2) "4"
3) "2"
4) "3"
5) "1"
6) "5"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉发的小王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值