KEYS:获取所有与给定匹配符相匹配的键

KEYS 命令接受一个全局匹配符作为参数,然后返回数据库中所有与这个匹配符相匹配的键作为结果:

KEYS pattern

举个例子,如果我们想要获取数据库包含的所有键,那么可以执行以下命令:

redis> KEYS *
1) "fruits"
2) "user::12312::profile"
3) "user::ip"
4) "user::id"
5) "cache::/user/peter"
6) "todo-list"

如果我们想要获取所有以 user:: 为前缀的键,那么可以执行以下命令:

redis> KEYS user::*
1) "user::12312::profile"
2) "user::ip"
3) "user::id"

如果数据库中没有任何键与给定的匹配符相匹配,那么KEYS命令将返回一个空值:

redis> KEYS article::*
(empty list or set) -- 数据库中没有任何以article::为前缀的键

全局匹配符

KEYS 命令允许使用多种不同的全局匹配符作为pattern参数的值,表 11-1展示了一些常见的全局匹配符,并举例说明了这些匹配符的作用。

image 2025 01 05 14 31 01 682
Figure 1. 表11-1 全局匹配符的作用及示例

关于全局匹配符的更多信息可以参考维基百科 https://en.wikipedia.org/wiki/Glob_(programming) 或者 glob 程序的手册页面 http://man7.org/linux/man-pages/man7/glob.7.html

其他信息

  • 复杂度:O(N),其中N为数据库包含的键数量。

  • 版本要求:KEYS 命令从 Redis 1.0.0 版本开始可用。