Redis的Set是string类型的无序集合,集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。常用命令如下:
127.0.0.1:6597> sadd class zhangsan # 向集合中添加元素
(integer) 1
127.0.0.1:6597> sadd class lisi
(integer) 1
127.0.0.1:6597> sadd class wangwu
(integer) 1
127.0.0.1:6597> sadd class zhouliu
(integer) 1
127.0.0.1:6597> scard class # 获取集合的元素数量
(integer) 4
127.0.0.1:6597> sadd class1 zhangsan
(integer) 1
127.0.0.1:6597> sadd class1 wangwu
(integer) 1
127.0.0.1:6597> sdiff class class1 # 返回给定的所有集合的差集,返回的是class和class1的差集
1) "lisi"
2) "zhouliu"
127.0.0.1:6597> sinter class class1 # 返回给定所有集合的交集,即返回class和class1共同的部分
1) "wangwu"
2) "zhangsan"
127.0.0.1:6597> sismember class zhangsan # 判断元素在集合中是否存在,返回1即存在,返回0表示不存在
(integer) 1
127.0.0.1:6597> sismember class test
(integer) 0
127.0.0.1:6597> smembers class # 返回集合中的所有元素,根据返回的数据看是无序的
1) "lisi"
2) "zhangsan"
3) "wangwu"
4) "zhouliu"
127.0.0.1:6597> smove class class1 zhouliu # 将指定元素[zhouliu]从class移动到class1集合中
(integer) 1
127.0.0.1:6597> smembers class
1) "lisi"
2) "zhangsan"
3) "wangwu"
127.0.0.1:6597> smembers class1
1) "wangwu"
2) "zhangsan"
3) "zhouliu"
127.0.0.1:6597> spop class1 # 移除并返回集合中的一个随机元素
"zhouliu"
127.0.0.1:6597> srandmember class1 1 # 返回集合中一个或多个随机元素,元素不会移除
1) "wangwu"
127.0.0.1:6597> smembers class1
1) "wangwu"
2) "zhangsan"
127.0.0.1:6597> srem class1 wangwu # 移除集合中的一个或多个元素,元素不返回
(integer) 1
127.0.0.1:6597> smembers class1
1) "zhangsan"
127.0.0.1:6597> sunion class class1 # 返回给定的集合的所有元素并集
1) "wangwu"
2) "zhangsan"
3) "lisi"
127.0.0.1:6597> smembers class1
1) "zhangsan"
127.0.0.1:6597> smembers class
1) "lisi"
2) "zhangsan"
3) "wangwu"
127.0.0.1:6597>
以上是Redis中set集合的常用命令!