1.redis set的介绍redis
集合中的数据是不重复且没有顺序,集合类型和列表类型的对比。spa
集合类型:存储的是的是最多2的32次方减一个字符串,数据是没有顺序的,可是数据是惟一的code
列表类型:最多存储内容最多2的32次方减一个字符串,数据是有序的,它的数据不是惟一的。blog
集合类型的经常使用操做是向集合中假如或者删除元素。判断某个元素是否存在等,因为集合类型的Redis内部是使用值为空的散转表实现,全部这些操做的时间复杂度都为o(1);rem
redis还提供了多个集合之间的交集、并集、差集的运算字符串
2.命令:io
(1)增长、删除元素ast
语法:SADD key member [member ……]class
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