首页/数据/数据库速查/HSCAN 游标遍历大 Hash
Redis 命令96 条

HSCAN 游标遍历大 Hash

渐进式遍历:HSCAN key cursor [MATCH pattern] [COUNT n],游标 0 开始、再次返回 0 表示结束;不会像 HGETALL 那样一次性阻塞。

数据库速查数据更新于 2026-10-12

遍历示例

遍历示例
HSCAN user:big 0 COUNT 100
# 1) "128"  2) 1) field1 2) val1 3) field2 4) val2 ...
HSCAN user:big 128 COUNT 100   # 用上次返回的游标继续
# 直到返回的游标为 0
# 只找前缀字段:
HSCAN user:big 0 MATCH addr:* COUNT 1000
cursor上次返回的游标,0 表示重新开始/结束
COUNT每次扫描提示量(不保证精确)
MATCH对字段名做模式过滤
SCAN 系列只保证遍历期间一直在的键/字段都被返回,缩容期间的重复返回需业务幂等;不能当快照用。

易错点

  • 把 COUNT 当精确返回条数:它是提示值,返回可能多也可能少
  • 遍历时改动大量字段导致重复/漏读,对结果做去重与容错

数据来源与参考

  • Redis 官方文档: HSCAN
  • Redis 官方文档: SCAN 与游标语义

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌