Redis的set相当于Java语言里面的HashSet,它内部键值对是无序的、唯一的。它的内部实现相当于一个特殊的字典,字典中所有的value都是一个值NULL。
还有相关命令有需要的可以看一下
Redis中的Hash类型12个常用命令(图文例子) Redis中的String类型常用方法(图文例子) Redis常用数据类型——list九大常用命令(图文例子)
作用:向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"
作用:获取set集合中所有的元素 格式:smembers key
举例
127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaoming"
3) "xiaohong"
作用:删除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"
作用:获取set集合中元素的个数 格式: scard key
举例
127.0.0.1:6379> smembers student
1) "xiaoliang"
2) "xiaohong"
127.0.0.1:6379> scard student
(integer) 2
作用:输入的元素个数,并随机删除返回删除的元素 格式: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"
作用:判断元素是否在集合中,存在返回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
作用:求两个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"
作用:求差集,同上的解释,比上面多的就是把求得差集保存在另一个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"
作用:求两个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"
作用:求两个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"
作用:求两个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"
作用:求两个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"
作用:移动元素从源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"
Q.E.D.