查找所有符合指定模式 pattern 的 key。
命令格式
KEYS pattern
可用版本:>=1.0.0
时间复杂度:O(n),n为数据库中key的数量。
虽然该KEYS命令的时间复杂度为O(n),但是它的执行时间还是比较快。例如,在一个入门级的服务器上,40毫秒内可以扫描100万个key。
值得注意的是,KEYS命令在生产环境中使用时,要格外小心。在key大量存在的数据库中,它会严重影响Redis服务的性能。该命令更多是用于调试及特殊的需求,如更换键空间的布局。不要在正常的应用下使用KEYS命令,如果想查找相应模式的key,可以使用SCAN命令或者Sets数据类型。
命令参数
pattern参数表示匹配的模式,支持glob-style的模式:
- 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。
用\来转义特殊字符。
命令返回值
KEYS命令返回匹配pattern的所有key列表。
示例
redis> MSET firstname Jack lastname Stuntman age 35
OK
redis> KEYS *name*
1) "lastname"
2) "firstname"
redis> KEYS a??
1) "age"
redis> KEYS *
1) "lastname"
2) "firstname"
3) "age"