*Redis keys 命令
*语法
KEYS pattern
返回所有匹配 pattern 的键。
虽然此操作的时间复杂度为 O(N),但常数时间相当低。 例如,在入门级笔记本电脑上运行的 Redis 可以在 40 毫秒内扫描包含 100 万个键的数据库。
警告:应谨慎在生产环境中使用 KEYS,仅用于极端情况。 对大型数据库执行此命令可能会严重影响性能。 此命令仅用于调试和特殊操作,例如更改键空间布局。 不要在常规应用程序代码中使用 KEYS。 如果你需要查找键空间的子集,请考虑使用 SCAN 或集合。
支持的 glob 风格模式:
h?llo匹配hello、hallo和hxlloh*llo匹配hllo和heeeelloh[ae]llo匹配hello和hallo,但不匹配hilloh[^e]llo匹配hallo、hbllo、... 但不匹配helloh[a-b]llo匹配hallo和hbllo
使用 \ 转义特殊字符,以便按字面意思匹配它们。
使用 Redis 集群时,搜索会针对暗示单个槽的模式进行优化。
如果模式只能匹配单个槽的键,
Redis 只会在该槽中迭代键,而不是整个数据库,
以搜索匹配模式的键。
例如,对于模式 {a}h*llo,Redis 只会尝试将其与槽 15495 中的键匹配,这是哈希标签 {a} 所暗示的。
要了解有关使用带哈希标签的模式的更多信息,请参阅集群规范中的哈希标签。
此命令在集群化 Redis 环境中的行为有所不同。有关更多信息,请参阅多键操作页面。
*示例
# 返回所有匹配给定模式的键名
> MSET firstname Jack lastname Stuntman age 35
"OK"
> KEYS *name*
1) "lastname"
2) "firstname"
> KEYS a??
1) "age"
> KEYS *
1) "age"
2) "lastname"
3) "firstname"
在交互式控制台中试试这些命令:
cli
MSET firstname Jack lastname Stuntman age 35
KEYS *name*
KEYS a??
KEYS *
*返回值说明
数组回复: 匹配 pattern 的键列表。