键
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和hxlloh*llo匹配hllo和heeeelloh[ae]llo匹配hello和hallo,但不匹配hilloh[^e]llo匹配hallo,hbllo, ... 但不匹配helloh[a-b]llo匹配hallo和hbllo
如果你想逐字匹配特殊字符,请使用\来转义它们。
当使用Redis Cluster时,搜索针对暗示单个槽的模式进行了优化。如果模式只能匹配一个槽的键,Redis在搜索匹配模式的键时,只会遍历该槽中的键,而不是整个数据库。例如,使用模式{a}h*llo,Redis只会尝试与槽15495中的键匹配,这是哈希标签{a}所暗示的。要使用带有哈希标签的模式,请参阅集群规范中的Hash tags以获取更多信息。