安全遍历
安全遍历
SCAN 0 MATCH user:* COUNT 100
# 1) "512" 2) 1) user:1 2) user:9 ...
SCAN 512 MATCH user:* COUNT 100 # 用返回游标继续,直到 0
# COUNT 是提示量不是精确条数;MATCH 仍是全扫描后过滤
# 危险(仅限本地/离线小库):
KEYS user:*| KEYS | O(N) 全量扫描,阻塞服务 |
|---|---|
| SCAN | 游标式渐进遍历,可中断 |
| 替代 | 非精确统计用 SCAN;精确前缀统计可维护计数器 |
线上执行 KEYS * 是大忌:几十万键即可造成秒级阻塞;需要按前缀找键就用 SCAN,或在写入时维护索引结构。