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"