set介绍:

在集合中的每个元素都是不同的,且没有顺序。一个集合类型(set)键可以存储至多2^32-1个字符串。集合类型和列表类型有相似之处,但很容易将它们区分开来

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

命令:

1、增加/删除元素 SADD SREM

SADD key member [member ...]

SREM key member [member ...]

SADD命令用来向集合中增加一个或多个元素,如果键不存在则会自动创建。因为在一个集合中不能有相同的元素,所以如果要加入的元素已经存在于集合中就会忽略这个元素。本命令的返回值是成功加入的元素数量(忽略的元素不计算在内)。
SREM命令用来从集合中删除一个或多个元素,并返回删除成功的个数,同样,如果元素不存在,则会忽略。

2、获取集合中的所有元素 SMEMBERS

SMEMBERS key

 3、判断元素是否在集合中  SISMEMBER

SISMEMBER key member

判断一个元素是否在集合中是一个时间复杂度为O(1)的操作,无论集合中有多少个元素,SISMEMBER命令始终可以极快地返回结果。当值存在时 SISMEMBER 命令返回1,当值不存在或键不存在时返回0。

 4、集合集合间运算  SDIFF SINTER SUNION

SDIFF key [key ...]          差集运算
SINTER key [key ...]        交集运算
SUNION key [key ...]        并集运算
 

都支持传入多个key,先计算key1与key2的差、交、并,再拿结果计算与key3的、交、并

5、获取集合中元素个数 SCARD

SCARD key 不存在返回0

 

 6、进行集合运算并将结果存储 SDIFFSTORE SINTERSTORE SUNIONSTORE

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

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

7、随机获得集合中的元素 SRANDMEMBER

SRANDMEMBER key [count]

SRANDMEMBER命令用来随机从集合中获取一个元素。还可以传递count参数来一次随机获得多个元素,根据count的正负不同,具体表现也不同。
(1)当count为正数时,SRANDMEMBER会随机从集合里获得count个不重复的元素。如果 count的值大于集合中的元素个数,则 sRANDMEMBER 会返回集合中的全部元素。
(2)当count为负数时,SRANDMEMBER 会随机从集合里获得| countl个的元素,这些元素有可能相同。

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐