在 Redis 中查看所有 key 有几种方法,但需要注意 Redis 是单线程服务,在生产环境中大量 key 的情况下谨慎使用这些命令。
最直接的方法是使用 KEYS
命令:
KEYS *
这会返回数据库中所有的 key。但需要注意: - 在生产环境中不推荐使用,因为会阻塞 Redis 服务 - 当 key 数量很大时(百万级以上)会导致 Redis 短暂不可用
更安全的方式是使用 SCAN
命令,它是一个增量式迭代器:
SCAN 0
SCAN 命令特点:
- 不会阻塞服务器
- 可以分批获取 key
- 可能需要多次执行直到返回的游标为 0
- 可以添加 MATCH 模式匹配,如 SCAN 0 MATCH user*
可以结合 TYPE 命令查看特定类型的 key:
KEYS * | xargs redis-cli TYPE
查看 key 的统计信息:
INFO keyspace
这会显示每个数据库的 key 数量和过期 key 数量。
DBSIZE
返回当前数据库的 key 数量。
KEYS *
,优先使用 SCAN
对于生产环境,考虑: - 使用 Redis 的监控工具 - 设置 key 命名规范并使用前缀搜索 - 维护一个 key 的索引或目录