scan 命令允许迭代 redis 键值对。它使用游标跟踪进度,支持模式匹配和指定每次迭代返回的键值对数量。使用 scan 0 开始迭代,随后的调用使用上次返回的游标。该命令返回一个游标和包含检索到的键值对的数组。scan 是无阻塞的,并且每次迭代最多返回 1000 个键值对。完成迭代需要在游标变为 0 时停止。
SCAN 命令在 redis 中的使用
概述
SCAN 命令用于迭代 Redis 数据库中的键值对。它提供了一种高效且可扩展的方式来遍历大型数据集。
语法
SCAN cursor [MATCH pattern] [count count]
参数说明
- cursor:用于跟踪迭代进度的游标。初始值应为 0。
- MATCH pattern:用于匹配要检索的键的模式。
- COUNT count:指定每次迭代中要返回的键值对数量。
用法
使用 SCAN 命令时,需要指定一个游标作为起始点。首次调用时,游标应为 0。后续调用应使用上一次调用返回的游标。
该命令将返回一个包含两个元素的数组:
- 游标:用于继续迭代的更新游标。
- 值:一个数组,其中包含每次迭代中检索的键值对。
示例
# 迭代所有键值对 SCAN 0 # 迭代以 "foo" 开头的键 SCAN 0 MATCH foo* # 每次迭代返回 10 个键值对 SCAN 0 COUNT 10
注意事项
- SCAN 命令是无阻塞的,这意味着它不会阻止服务器执行其他操作。
- SCAN 命令每次迭代最多返回 1000 个键值对。使用 COUNT 参数可以控制每次迭代返回的键值对数量。
- 要完成迭代,需要在游标为 0 时停止。