扫描 Redis Keyspace

Redis 提供 SCAN 命令来迭代匹配特定模式的数据库中的键。Redis 在 SCAN 命令中支持 glob 样式模式匹配。

SCAN 命令在 Redis 键空间上提供基于游标的迭代器。SCAN 的迭代调用序列开始于用户在将 cursor 参数设置为 0 的情况下进行调用。该调用的结果是一批项目和一个更新的游标,它被提供给下一次调用 SCAN。此迭代继续,直到 Redis 返回 0 游标。

以下 Python 函数演示了 SCAN 的基本用法:

def scan_keys(r, pattern):
    "Returns a list of all the keys matching a given pattern"

    result = []
    cur, keys  = r.scan(cursor=0, match=pattern, count=2)
    result.extend(keys)
    while cur != 0:
        cur, keys = r.scan(cursor=cur, match=pattern, count=2)
        result.extend(keys)
        
    return result

SCAN 命令是搜索数据库中密钥的推荐方法,建议使用 KEYS *命令。