KEYS

返回与模式匹配的所有键名称。

语法

KEYS pattern

引入版本:1.0.0

复杂度摘要:O(N)

[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。

返回与 pattern 匹配的所有键。

必需参数

pattern

用于匹配键名称的 glob 样式模式。

详细说明

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

[!警告] 在生产环境中使用此命令时要格外小心。当针对大型数据库执行时,它可能会破坏性能。此命令用于调试和特殊操作,例如更改键空间布局。不要在常规应用程序代码中使用 KEYS。如果您正在寻找一种在键空间子集中查找键的方法,请考虑使用 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集群 时,搜索针对暗示单个槽的模式进行了优化。如果一种模式只能匹配一个槽的键,则在搜索与该模式匹配的键时,Redis 只会迭代该槽中的键,而不是整个数据库。例如,对于模式 {a}h*llo,Redis 只会尝试将其与槽 15495 中的键进行匹配,这也是哈希标签 {a} 所暗示的。要将模式与哈希标签一起使用,请参阅集群规范中的 哈希标签 以获取更多信息。

示例

> MSET firstname Jack lastname Stuntman age 35
OK
> KEYS *name*
1) "lastname"
2) "firstname"
> KEYS a??
1) "age"
> KEYS *
1) "age"
2) "lastname"
3) "firstname"

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

数组回复:与 图案 匹配的键列表。

RESP3

数组回复:与 图案 匹配的键列表。

资料来源:Redis 官方 KEYS 文档;中文内容参考 Redis 文档许可。