遇到 ERR redis temporary failure 这样的临时性错误,虽然提示是"临时"的,但确实会打断业务,让人头疼。
这类问题通常不是Redis内核本身的崩溃,而是由瞬时状态引发的,比如连接耗尽、内存压力大、慢查询阻塞或网络抖动或CPU高。下面是我的一个排查思路。
先使用
redis-cli info stats看一下redis的状态

info memory 查看内存情况:

发现内存还是很充足的,刚开始怀疑是内存满了被淘汰策略强制淘汰了,因为有一部分key确实丢失了,最后修改了maxmerory -policy为拒绝,发现不是内存问题。
info clients
查看链接情况:

最后查询慢查询日志:
redis-cli slowlog get 5
发现是有大key以及方法,然后在代码中找使用的地方,进行修改。修改完之后发现ok。
后来发现可以直接去阿里云平台看,因为我们公司是使用的阿里云平台。

