Redis学习笔记(4)

来源:互联网 发布:vb飞机游戏代码 编辑:程序博客网 时间:2024/06/03 23:44

集合:在集合中每个元素都是不同的,且没有顺序。常用的操作是向集合加入或删除元素。判断某个元素是否存在等,由于集合类型在Redis内部是使用值为空的三列表实现的,所以这些操作的时间复杂度都是0(1)。最方便的是多个集合类型键之间还可以进行并集,交集和差运算。

命令

1 增加/删除元素

SADD key member[member...]  可以向集合增加一个或多个元素,如果键不存在则会自动创建。如果已经有就忽略这个元素。返回加入元素的个数SREM key member[member...]  删除一个或多个元素,返回删除个数


2 获得集合中的所有元素

SMEMBERS key


3 判断元素是否在集合中

SISMEMBER key member  存在返回1,不存在返回0


4 集合运算

SDIFF key [key ...]SINTER key [key...]SUNION key [key...]
(1)SDIFF命令用来对多个集合执行差集运算。集合A与集合B的差集表示A-B,代表有属于A且不属于B的元素构成的集合。

(2)SINTER命令用来对多个集合执行交集运算。集合A与集合B的交集,代表所有属于A且属于B的元素构成的集合。

(3)SUNION命令用来对多个集合执行并集运算。集合A与集合B的并集,代表所有属性A或属于B的元素构成的集合。

5 获得集合中元素个数

SCARD key

6 进行集合运算并将结果存储

SDIFFSTORE destination key [key...]SINTERSTORE destination key [key...]SUNIONSTORE destination key [key...]

(1)SDIFFSTORE命令和SDIFF命令功能一样,唯一的区别就是前者不会直接返回运算结果,而是将结果存储在destination键中。

SDIFFSTORE命令常用于需要进行多步集合运算的场景中,如果需要先计算差集再将结果和其他键值计算交集。其他两个命令类似。

7 随机获得集合中的元素

SRANDMEMBER key [count]  count代表随机获得几个元素 
(1)当count为正数时,SRANDMEMBER会随机从集合里获得count个不重复的元素。如果
count的值大于集合中的元素个数,则SRANDMEMBER会返回集合中的全部元素。
(2)当count为负数时,SRANDMEMBER会随机从集合里获得|count|个的元素,这些元素有
可能相同。

 8 从集合中弹出一个元素

SPOP key 因为集合是无序的,所以弹出来的也是随机的


0 0