1.redis set的介绍
集合中的数据是不重复且没有顺序,集合类型和列表类型的对比。
集合类型:存储的是的是最多2的32次方减一个字符串,数据是没有顺序的,但是数据是唯一的
列表类型:最多存储内容最多2的32次方减一个字符串,数据是有序的,它的数据不是唯一的。
集合类型的常用操作是向集合中假如或者删除元素。判断某个元素是否存在等,由于集合类型的Redis内部是使用值为空的散转表实现,所有这些操作的时间复杂度都为o(1);
redis还提供了多个集合之间的交集、并集、差集的运算
2.命令:
(1)增加、删除元素
语法:SADD key member [member ……]
127.0.0.1:6379> sadd set a b c (integer) 3 127.0.0.1:6379> sadd set a (integer) 0
语法:SREM key member [member……]
127.0.0.1:6379> srem set c d (integer) 1
(2)获得集合中的所有元素
语法:SMEMBERS key
smembers key 1) "b" 2) "a”
(3)判断元素是否在集合中
语法:sismember key member 存在值为1,不存在值为0
127.0.0.1:6379> sismember set a (integer) 1 127.0.0.1:6379> sismember set h (integer) 0
(4)运算命令
集合的差集运算A-B,属于A但是不属于B
语法:sdiff key [key……]
127.0.0.1:6379> sadd setA 1 2 3 (integer) 3 127.0.0.1:6379> sadd setB 2 3 4 (integer) 3 127.0.0.1:6379> sdiff setA setB 1) "1" 127.0.0.1:6379> sdiff setB setA 1) "4"
集合交集运算,属于A且属于B元素构成的集合
语法:sinter key key ……
127.0.0.1:6379> sinter setA setB 1) "2" 2) "3"
集合的并集运算,A和B一起组成的数据
sunion key key ……
127.0.0.1:6379> sunion setA setB 1) "1" 2) "2" 3) "3" 4) "4"
获取集合的元素个数
语法:scard key
127.0.0.1:6379> scard setA (integer) 3
从集合中弹出一个元素,由于集合是无序的,所有spop命令会从集合中随机选择一个元素弹出
语法:spop key
127.0.0.1:6379> spop setA "1“
127.0.0.1:6379> sadd set a b c
(integer) 3
127.0.0.1:6379> sadd set a
(integer) 0