现象:
在功能测试过程中发现redis隔一段时间就会超时,报错信息如下:
io.lettuce.core.RedisCommandTimeoutException: Command timed out after 3 second(s)
排查:
根据提示,一开始以为是超时间设置问题,于是调大时间当依然没用。
最后偶然发现在开发环境没有问题,只在测试环境有问题,而二者环境的区别在于测试环境的内存已经满了。
于是尝试删除部分缓存,使测试环境内存使用情况降低,然后观察。确实就不会出现这个问题。
结论:
内存占满后,redis无法再保存新的数据,同时会启动内存清理策略,这个期间连接会有异常。
原文:https://www.cnblogs.com/yangweixin/p/14725957.html