监控发现redis的cpu每隔1秒,会瞬间跳到40%,然后恢复到4%左右。
连接: redis-cli -a 你的密码 -h localhost -p 6379 redis-cli -a 你的密码 -h localhost -p 6379 monitor 可以监控执行的命令(刷屏)
输入: SLOWLOG GET 10
localhost:6379> slowlog get 100 1) 1) (integer) 315212 2) (integer) 1507800969 3) (integer) 153436 4) 1) "KEYS" 2) "xxx20170920_date_*" 5) "127.0.0.1:44196" 6) "" 2) 1) (integer) 315211 2) (integer) 1507800965 3) (integer) 154542 4) 1) "KEYS" 2) "xxx20170920_date_*" 5) "127.0.0.1:44196" 6) ""
三行数字分别是编号,时间戳,执行时间
单个命令执行150毫秒。
输入: KEYS xxx20170920_date_*
证实了,正是它引起的。 --------------------------------------------------------------------- keys aaa*
利用keys的模糊匹配带来的性能问题
从上面开来,keys的模糊匹配功能很方便也很强大,但是在生产环境需要慎用!
开发中使用keys的模糊匹配却发现redis的CPU使用率极高,所以公司的redis生产环境将keys命令禁用了!
那怎么解决这种类似的keys模糊匹配问题呢?其中常见的方法就是设置一个set,将需要使用的keys存储在set中 ---------------------------------------------------------------------
|