Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis SSCAN 命令

Redis 集合(Sets) Redis 集合(Sets)


SSCAN 命令用于迭代集合键中的元素。语法与 SCAN 类似。

命令格式

SSCAN key cursor [MATCH pattern] [COUNT count]

可用版本:>=2.8.0

时间复杂度:当每次迭代匹配目标时,时间复杂度为 O(1),完整的迭代时,时间复杂度为 O(N)。

  • cursor 参数。SSCAN 命令每次被调用之后,都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为 SSCAN 命令的游标参数,以此来延续之前的迭代过程。
    当 SCAN 命令的游标参数被设置为 0 时,服务器将开始一次新的迭代,而当服务器向用户返回值为 0 的游标时,表示迭代已结束。

  • MATCH 参数。和 KEYS 命令一样,增量式迭代命令也可以通过提供一个 glob 风格的模式参数,让命令只返回和给定模式相匹配的元素,这一点可以通过在执行增量式迭代命令时,通过给定 MATCH <pattern> 参数来实现。

  • COUNT 参数。虽然增量式迭代命令不保证每次迭代所返回的元素数量,但我们可以使用 COUNT 选项,对命令的行为进行一定程度上的调整。基本上,COUNT 选项的作用就是让用户告知迭代命令,在每次迭代中应该从数据集里返回多少元素。

命令返回值

返回一个新的游标,以及迭代匹配的元素列表。

示例

redis> SADD myset one
(integer) 1
redis> SADD myset two
(integer) 1
redis> SADD myset three
(integer) 1
redis> SSCAN myset 0 MATCH *o* COUNT 3
1) "3"
2) 1) "one"
   2) "two"