键
Syntax
KEYS pattern
- Available since:
- 1.0.0
- Time complexity:
- O(N) with N being the number of keys in the database, under the assumption that the key names in the database and the given pattern have limited length.
- ACL categories:
-
@keyspace
,@read
,@slow
,@dangerous
,
返回所有匹配pattern
的键。
虽然此操作的时间复杂度为O(N),但常数时间相当低。 例如,在入门级笔记本电脑上运行的Redis可以在40毫秒内扫描一个包含100万个键的数据库。
警告: 请将KEYS
视为一个应仅在生产环境中极其谨慎使用的命令。
当在大型数据库上执行时,它可能会严重影响性能。
此命令旨在用于调试和特殊操作,例如更改您的键空间布局。
不要在您的常规应用程序代码中使用KEYS
。
如果您正在寻找一种在键空间子集中查找键的方法,请考虑使用SCAN
或sets。
支持的全局样式模式:
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时,搜索针对暗示单个槽的模式进行了优化。如果模式只能匹配一个槽的键,Redis在搜索匹配模式的键时,只会遍历该槽中的键,而不是整个数据库。例如,使用模式{a}h*llo
,Redis只会尝试与槽15495中的键匹配,这是哈希标签{a}
所暗示的。要使用带有哈希标签的模式,请参阅集群规范中的Hash tags以获取更多信息。