简介
Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
指令
sadd key member [member ...]
将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
smembers key
返回集合中的所有的成员
sscan key cursor [MATCH pattern] [COUNT count]
用于迭代集合中键的元素
相关介绍:
SCAN 命令用于迭代当前数据库中的数据库键。
SSCAN 命令用于迭代集合键中的元素。
HSCAN 命令用于迭代哈希键中的键值对。
ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)。
SCAN 命令是一个基于游标的迭代器(cursor based iterator): SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。
当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束。
PS:sscan 后返回的1) 后面的值是0,表示遍历完成。
spop key [count]
移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素。
scard key
返回集合中元素的数量
SRANDMEMBER key [count]
用于返回集合中的一个随机元素。
负数时,返回一个集合,取值随机且可以重复:
srem key member [member ...]
用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
SMOVE source destination member
将指定成员 member 元素从 source 集合移动到 destination 集合
SINTER key [key ...]
返回给定所有集合的交集
SINTERSTORE destination key [key ...]
返回给定所有集合的交集并存储在 destination 中
SUNION key [key ...]
返回所有给定集合的并集
SUNIONSTORE destination key [key ...]
所有给定集合的并集存储在 destination 集合中
SDIFF key [key ...]
返回给定集合之间的差集。不存在的集合 key 将视为空集。
存在顺序差异。