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 安全操作。