可以使用redis的keys命令来查看当前redis中存在哪些key。keys命令允许使用通配符对key进行筛选。下面是keys命令的语法:
keys pattern
查找所有符合给定模式 pattern 的 key 。
keys的模式支持下面通配符:
*通配符。该通配符表示所有的意思。如:keys * 匹配数据库中所有 key 。
?通配符。表示一个任意字符。如:keys h?llo 命令匹配 hello , hallo 和 hxllo 等。
*通配符。表示任何字符。如:keys h*llo 表示任何一h开头,llo结尾的key,如匹配 hllo 和 heeeeello 等。
[]通配符。这和正则表示中的[]类似,每次可以配其中任何一个字符。如:keys h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo,因为i不在[ae]中 。
注意:和使用正则表达式类似,如果key中包含特殊符号,则需要进行转义,即用\隔开。
keys的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题(如果这个数据库中存在上百万的key,此时就非常消耗性能),如果你需要从一个数据集中查找特定的 key ,你最好还是用 Redis 的集合结构(set)来代替。
可用版本:
1.0.0版本及以上版本
时间复杂度:
O(N), N 为数据库中 key 的数量。
返回值:
符合给定模式的 key 列表。
实例:
# 使用mset命令,一次设置 4 个 key。分别是one=1,two=2,three=3,four=4 redis> mset one 1 two 2 three 3 four 4 OK # 和四条set命令是同样的效果 redis> set one 1 OK redis> set two 2 OK redis> set three 3 OK redis> set four 4 OK # 使用keys命令找出key中包含‘o’字符的key redis> keys *o* 1) "four" 2) "two" 3) "one" # 使用keys命令找出以t开头且后面存在两个任意字符的key redis> keys t?? 1) "two" # 使用keys命令找出以tw开头的所有key redis> keys t[w]* 1) "two" # 使用keys命令匹配数据库内的所有key redis> keys * 1) "four" 2) "three" 3) "two" 4) "one"
到这里,你应该会使用keys命令了吧!是不是很简单………………