如何在 Redis 客户端查看所有 key

如何在 Redis 客户端查看所有 key
最新回答
星星泡饭

2023-02-11 11:29:13

在 Redis 客户端查看所有 key 的方法如下:使用 Redis 的 KEYS 命令,通过指定模式(pattern)匹配并返回符合条件的 key 列表。以下是详细步骤和说明:

核心方法
  • 命令语法:KEYS [pattern]

    pattern 为可选参数,用于过滤 key。若省略或使用 *,则返回所有 key。

详细步骤
  1. 连接到 Redis 服务器

    使用 Redis 官方客户端 redis-cli 或其他兼容工具(如 RDM、Medis 等)建立连接。

    示例命令:$ redis-cli -h <host> -p <port> -a <password> # 带认证的连接$ redis-cli # 默认连接本地 127.0.0.1:6379

  2. 执行 KEYS 命令

    查看所有 key:在 Redis 交互提示符下输入 KEYS *,返回当前数据库中所有 key 的列表。127.0.0.1:6379> KEYS *1) "message"2) "key-1"3) "user:1"

    根据模式过滤 key:使用通配符模式匹配特定 key。例如:

    KEYS user:*:匹配所有以 user: 开头的 key。

    KEYS *lock*:匹配包含 lock 的 key。

    127.0.0.1:6379> KEYS user:*1) "user:1"2) "user:profile:1001"

  3. 查看结果

    命令返回一个数组,包含所有匹配的 key。若无匹配项,返回空列表 (empty list or set)。

注意事项
  • 性能影响

    KEYS 命令会阻塞 Redis 服务器,尤其在 key 数量庞大时(如数百万级),可能导致服务短暂不可用。

    生产环境慎用,建议改用 SCAN 命令(增量迭代 key,避免阻塞)。

  • 模式语法

    *:匹配任意数量任意字符(如 a* 匹配 a、ab、abc)。

    ?:匹配单个任意字符(如 h?llo 匹配 hello、hallo)。

    []:匹配指定范围内的字符(如 h[ae]llo 匹配 hello、hallo)。

  • 数据库选择

    Redis 默认有 16 个数据库(编号 0-15),KEYS 仅操作当前数据库。切换数据库命令:127.0.0.1:6379> SELECT 1 # 切换到数据库 1

替代方案(推荐生产环境使用)
  • SCAN 命令:通过增量迭代方式安全地遍历 key,避免阻塞。示例:127.0.0.1:6379> SCAN 0 MATCH user:* COUNT 100 # 从游标 0 开始,每次返回 100 个匹配项
示例总结
  • 查看所有 key:$ redis-cli127.0.0.1:6379> KEYS *
  • 过滤特定 key:127.0.0.1:6379> KEYS cache:*

通过上述方法,可灵活查询 Redis 中的 key 列表,但需根据场景选择合适命令以平衡功能与性能。