查看“Redis sscan”的源代码
←
Redis sscan
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
SSCAN 是在 Redis 2.8.0 版本中引入,用于迭代集合(Set)类型键中元素的命令。以增量方式检索集合中的元素,避免了一次性取出所有元素(SMEMBERS)可能导致的阻塞问题。类似于 SCAN 命令(用于迭代当前库中所有的键)和 HSCAN 命令(用于迭代哈希类型键中的字段和值)。 ===语法=== SSCAN key cursor [MATCH pattern] [COUNT count] *key: 要迭代的集合的键名 *cursor: 游标,整数。第一次迭代时,游标应设置为 0。每次 SSCAN 调用都会返回一个新的游标,用于下一次迭代。当返回的游标为 0 时,表示迭代完成 *MATCH pattern (可选): Glob 风格模式([[Glob patterns]]),用于过滤返回的元素,只有与模式匹配的元素才会被返回 *COUNT count (可选): 指示每次迭代应该尝试返回的元素数量(默认值 10),只是一个大概范围的提示 ===工作原理=== SSCAN 使用游标进行增量迭代。每次调用 SSCAN 时: #Redis 从指定的集合中,根据当前游标的位置,获取一部分元素 #如果提供了 MATCH 模式,Redis 会过滤这些元素,只保留与模式匹配的元素 #Redis 返回一个包含两个元素的数组: #*第一个元素是下一次迭代要使用的新的游标值 #*第二个元素是一个数组,包含本次迭代返回的元素 #当返回的游标值为 0 时,表示迭代完成 ===注意事项=== *COUNT 只是一个大概范围的提示<br>Redis 不保证每次 SSCAN 调用都返回恰好 COUNT 个元素,可能会返回更多或更少的元素 *迭代过程中集合可能发生变化<br>在迭代过程中,集合的内容可能会被其他客户端修改(添加或删除元素)。不能保证返回的元素集合是迭代开始时集合的快照。可能会反映迭代期间发生的更改。 *重复元素<br>在迭代过程中,同一个元素可能会被返回多次。这是因为 SSCAN 的实现方式,以及集合可能在迭代过程中发生变化。如果应用程序需要确保每个元素只被处理一次,需要处理重复元素的情况(例如,在客户端维护一个已处理元素的集合)。 *无序性<br>不保证按照任何特定的顺序返回元素,返回元素的顺序取决于内部的哈希表实现。 ===不同版本 sscan count 结果不同=== <small><nowiki># Redis 5.0.7,每次返回 count 左右的元素数量 127.0.0.1:6379> sscan scan_set 0 match A* count 5 1) "28" 2) 1) "A23" 2) "A5" 3) "A16" 4) "A7" 5) "A8" 6) "A21" 127.0.0.1:6379> sscan scan_set 28 match A* count 5 1) "30" 2) 1) "A13" 2) "A20" 3) "A1" 4) "A17" 5) "A10" 6) "A12" 7) "A14" 127.0.0.1:6379> sscan scan_set 30 match A* count 5 1) "5" 2) 1) "A24" 2) "A18" 3) "A2" 127.0.0.1:6379> sscan scan_set 5 match A* count 5 1) "27" 2) 1) "A22" 2) "A11" 3) "A3" 4) "A19" 5) "A9" 127.0.0.1:6379> sscan scan_set 27 match A* count 5 1) "0" 2) 1) "A25" 2) "A6" 3) "A15" # Redis 7.2.4,每次返回尽可能多的元素数量 127.0.0.1:6379> sscan scan_set 0 match A* count 5 1) "0" 2) 1) "A1" 2) "A2" 3) "A3" 4) "A5" 5) "A6" 6) "A7" 7) "A8" 8) "A9" 9) "A10" 10) "A11" 11) "A12" 12) "A13" 13) "A14" 14) "A15" 15) "A16" 16) "A17" 17) "A18" 18) "A19" 19) "A20" 20) "A21" 21) "A22" 22) "A23" 23) "A24" 24) "A25"</nowiki></small> [[分类:Develop]] [[分类:DB]] [[分类:OtherDB]] [[分类:Redis]]
返回
Redis sscan
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
目录
文章分类
侧边栏
帮助
工具
链入页面
相关更改
特殊页面
页面信息