KEYS

语法
KEYS pattern
可用版本
1.0.0
时间复杂度
O(N),其中 N 是数据库中的键数,假设数据库中的键名和给定的模式具有有限的长度。
ACL 类别
@keyspace, @read, @slow, @dangerous,

返回与pattern匹配的所有键。

虽然此操作的时间复杂度为 O(N),但常数时间相当低。例如,在入门级笔记本电脑上运行的 Redis 可以在 40 毫秒内扫描一个包含 100 万个键的数据库。

警告:将KEYS视为仅应在生产环境中谨慎使用的命令。当它针对大型数据库执行时,可能会破坏性能。此命令旨在用于调试和特殊操作,例如更改键空间布局。不要在常规应用程序代码中使用KEYS。如果您正在寻找一种在键空间子集内查找键的方法,请考虑使用SCAN集合

支持的 glob 风格模式

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

如果要精确匹配特殊字符,请使用\对其进行转义。

使用Redis 集群时,搜索针对暗示单个槽位的模式进行了优化。如果模式只能匹配一个槽位的键,Redis 在搜索与模式匹配的键时,仅迭代该槽位的键,而不是整个数据库。例如,对于模式{a}h*llo,Redis 将仅尝试将其与槽位 15495 中的键匹配,该槽位暗示了哈希标签{a}。要使用带有哈希标签的模式,请参阅集群规范中的哈希标签,了解更多信息。

示例

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

RESP2/RESP3 回复

数组回复:与pattern匹配的键列表。
RATE THIS PAGE
Back to top ↑