Redis笔记---set

Posted kwdeep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis笔记---set相关的知识,希望对你有一定的参考价值。

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

以上是关于Redis笔记---set的主要内容,如果未能解决你的问题,请参考以下文章

Redis笔记 Redis数据结构 - set集合

Redis笔记- Set

Redis学习笔记-Set

Redis 学习笔记 基本命令:Set操作

Redis 学习笔记Set操作

Redis笔记---set