Redis 的 KEYS *
命令用于列出当前数据库中所有符合给定模式(pattern)的键名。当使用通配符 *
时,它会返回数据库中所有的键(Key)。
通配符支持:
*
匹配任意字符(包括空字符)。?
匹配单个字符。[abc]
匹配指定字符(如 a
、b
、c
)。KEYS user:*
会匹配所有以 user:
开头的键。阻塞风险:
KEYS
命令会遍历整个数据库,在数据量大的情况下会导致 Redis 短暂阻塞(单线程模型),可能影响生产环境性能。设计用途:
如果需要安全地列出或扫描键,请使用:
1. SCAN
命令:
- 非阻塞的迭代式扫描,避免长时间阻塞。
- 示例:
bash
SCAN 0 MATCH "user:*" COUNT 100
redis-cli --scan --pattern "user:*"
。# 列出所有键(谨慎使用)
KEYS *
# 列出以 "cache:" 开头的键
KEYS cache:*
KEYS
命令(通过 Redis 的 ACL 或配置文件中禁用)。如果有进一步的具体场景需求(如模糊删除键),可以结合 SCAN
+ DEL
安全操作。