程序员人生 网站导航

Redis研究(六)―集合类型

栏目:数据库应用时间:2015-03-06 08:47:00

1、介绍

1个集合类型(set)键可以存储最多2^32⑴个字符串。

集合类型在Redis内部是使用值为空的散列表(hash table)实现的,所以操作的复杂度为O(1)。多个集合类型键之间还可以进行并集、交集和差集运算。


2、命令

1.增加/删除元素

sadd key member srem key member

sadd用来向集合中增加1个或多个元素,如果键不存在则会自动创建。1个集合中不能有相同的元素,所以如果要加入的元素已存在于集合中就会疏忽这个元素。本命令的返回值是成功加入的元素数量。

第2条sadd命令返回2,由于a已存在,实际上只加入两个元素。

srem用来从集合中删除1个或多个元素,并返回删除成功的个数,

由于d在集合中不存在,所以只删除1个元素,返回值为1.


2.取得集合中的所有元素

smembers key

返回集合所有元素


3.判断元素是不是在集合中

sismember key member

时间复杂度O(1),不管有多少个元素。


4.集合之间运算

sdiff key sinter key sunion key

(1)sdiff差集运算,A-B,属于A但不属于B

sdiff支持同时传入多个键

顺序先计算setA-setB,再计算结果与setC的差集。

(2)sinter交集运算

sinter一样支持同时传入多个键。

(3)sunion并集运算。

sunion一样支持同时传入多个键。


3、命令拾遗

1.取得集合中元素个数


scard key

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

sdiffstore destination key sinterstore destination key sunionstore destination key

和sdiff功能1样,唯1区分前者不会直接返回运算结果,而是将结果存储在destination键中。


3.随机取得集合中的元素

srandmember key [count]

count参数1次随机取得多个元素。

(1)count正数,取得count个不重复的元素,当大于集合元素个数,返回集合全部元素

(2)count负数,绝对值个元素,可能相同。


4.从集合中弹出1个元素

spop key

从集合中随机选择1个元素弹出。


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐