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。 如果您正在寻找一种在键空间子集中查找键的方法,请考虑使用SCANsets

支持的全局样式模式:

  • h?llo 匹配 hello, hallohxllo
  • h*llo 匹配 hlloheeeello
  • h[ae]llo 匹配 hellohallo, 但不匹配 hillo
  • h[^e]llo 匹配 hallo, hbllo, ... 但不匹配 hello
  • h[a-b]llo 匹配 hallohbllo

如果你想逐字匹配特殊字符,请使用\来转义它们。

当使用Redis Cluster时,搜索针对暗示单个槽的模式进行了优化。如果模式只能匹配一个槽的键,Redis在搜索匹配模式的键时,只会遍历该槽中的键,而不是整个数据库。例如,使用模式{a}h*llo,Redis只会尝试与槽15495中的键匹配,这是哈希标签{a}所暗示的。要使用带有哈希标签的模式,请参阅集群规范中的Hash tags以获取更多信息。

示例

MSET firstname Jack lastname Stuntman age 35 KEYS *name* KEYS a?? KEYS *

RESP2/RESP3 回复

Array reply: a list of keys matching pattern.
RATE THIS PAGE
Back to top ↑