钥匙
语法
KEYS pattern
- 从以下位置开始可用:
- 1.0.0
- 时间复杂度:
- O(N),其中 N 是数据库中的键数,假设数据库中的键名称和给定模式的长度有限。
- ACL 类别:
-
@keyspace
,@read
,@slow
,@dangerous
,
返回所有匹配的键pattern
.
虽然此作的时间复杂度为 O(N),但常数时间为 相当低。 例如,在入门级笔记本电脑上运行的 Redis 可以扫描 100 万个密钥 数据库。
警告:考虑KEYS
作为只应在生产中使用的命令
环境。
当对大型数据库执行时,它可能会破坏性能。
此命令用于调试和特殊作,例如更改
您的 Keyspace 布局。
不要使用KEYS
在您的常规应用程序代码中。
如果你正在寻找一种方法来在 keyspace 的子集中查找 key,请考虑
用SCAN
或集。
支持的 glob 样式模式:
h?llo
比赛hello
,hallo
和hxllo
h*llo
比赛hllo
和heeeello
h[ae]llo
比赛hello
和hallo,
但不是hillo
h[^e]llo
比赛hallo
,hbllo
, ...但不是hello
h[a-b]llo
比赛hallo
和hbllo
如果要逐字匹配特殊字符,则用于转义它们。\
使用 Redis Cluster 时,搜索针对暗示单个槽的模式进行了优化。
如果一个 pattern 只能匹配一个 slot 的 key,
Redis 只迭代该 slot 中的键,而不是整个数据库。
搜索与模式匹配的键时。
例如,使用{a}h*llo
时,Redis 只会尝试将其与插槽 15495 中的键匹配,该哈希标签{a}
意味 着。
要将 pattern 与哈希标签一起使用,请参阅集群规范中的哈希标签了解更多信息。