文章目录
一、前言
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"