记一次使用redis的keys命令导致redis雪崩的生产事故

  |  

出现原因

由于需要每时每刻监听三方报错超过十次发送机器人警告,所以每次报错我这边就存入一个(key+时间),同时过期时间为1小时,所以查询当前的一个小时内错误次数,使用 keys key*查询key的数量,就知道错误次数,本来一直没有问题,跑了大半年了,突然有一天redis的cpu100%,直接雪崩,导致客户无法登录,后面排查原因是有个三方一直报错,代码又重试,由于需要机器人提醒(这个时候我们redis key已经超过80w个key),导致一秒钟查上千次询keys命令,最后redis直接爆炸。