首页/数据/Redis 进阶速查/SCAN 游标遍历替代 KEYS
性能与排障129 条

SCAN 游标遍历替代 KEYS

SCAN 用游标分批迭代键空间,每次返回一批与下一个游标,直到游标为 0;它不长时间阻塞服务,是生产环境枚举键的标准方式。

Redis 进阶速查数据更新于 2026-10-12
用法SCAN cursor [MATCH pattern] [COUNT n] [TYPE type]
迭代返回新游标与键列表,游标 0 结束
类型过滤TYPE string|hash|list|set|zset|stream(6.0 及以上)

示例

示例
redis-cli SCAN 0 MATCH user:* COUNT 1000
redis-cli SCAN 0 COUNT 1000 TYPE hash
redis-cli --scan --pattern 'user:*'
COUNT 只是每批工作量的提示值,不保证返回条数;遍历期间键的增删不保证一致快照。

易错点

  • SCAN 可能返回重复元素,需要幂等消费
  • 游标不是简单递增数字,客户端实现切勿自行加减或合并游标

数据来源与参考

  • Redis 官方文档:SCAN 命令(含保证与限制说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌