Redis中keys命令的使用与带来的性能问题

来源:互联网 发布:百度人工智能平台 编辑:程序博客网 时间:2024/05/21 09:17

(一)keys命令的使用

进入redis-cli之后,我们通常比较关心的是有哪些key(ps:当然也可以用其他客户端工具),那么就不得不说keys命令

keys pattern

获取当前库下的所有key

keys *

如下图所示,存在四个key:redis01、redis11、hbase01、hbase11

这里写图片描述

keys支持一下3种类型的通配符:

(1)*,该通配符表示任一长度的字符

如:keys *,匹配数据库中所有 key ;

如:查找以redis开头的所有key

keys redis*

这里写图片描述

(2)?,该通配符表示任一字符

如:查找以hbase开头、第6位为任一字符、以”1”结尾的key

keys hbase?1

这里写图片描述

(3)[],这和正则表示中的[]类似,每次可以配其中任何一个字符。

如:

keys redis[01]1

会匹配”redis01”和”redis11”,“2”不再【01】中,所有”redis21”未能匹配上

这里写图片描述

(二)利用keys的模糊匹配带来的性能问题

从上面开来,keys的模糊匹配功能很方便也很强大,但是在生产环境需要慎用!开发中使用keys的模糊匹配却发现redis的CPU使用率极高,所以公司的redis生产环境将keys命令禁用了!

那怎么解决这种类似的keys模糊匹配问题呢?其中常见的方法就是设置一个set,将需要使用的keys存储在set中。

1 0