我们在 redis 中观察到一个零星的问题(每个月或 2 个月一次(。突然,我们看到来自应用程序的 redis 读/写调用返回失败。此时,我们仍然能够从 redis-cli 连接到 redis,并且执行 FLUSHALL 可以解决问题。
有没有人遇到过这种问题。我们的 redis 版本是 4.0.9。由于我们在连接到 redis 时没有观察到任何问题,因此我们不怀疑 Jedis 客户端存在问题。
什么样的 redis 调用?写入数据或读取数据的东西?
总而言之,作为一个想法,检查你的 redis.conf 文件 它具有最大内存配置指令,当 redis 达到最大内存限制时,它会根据逐出策略进行操作。
如果策略设置为"noeviction",则行为听起来像您描述的内容(来自其文档(:
当达到内存限制并且客户端尝试执行可能导致使用更多内存的命令时返回错误(大多数写入命令,但 DEL 和更多例外(。
您可以将 redis 配置为缓存,以便它自行删除一些条目。
在此处阅读有关此内容的信息