我知道redis可以用作LRU缓存,但是有softlimit标志,我们可以在达到特定条件后说明“redis将开始清理LRU项目”。
实际上我在redis上遇到OOM错误,我已经将redis设置为LRU缓存,但它达到OOM限制并且应用程序停止。
我知道“maxmemory”标志,但是有一个softlimit,我们剩下10%的空间,我们可以开始驱逐一些项目,所以应用程序不会停止!
答案 0 :(得分:1)
您是否设定了特定的驱逐政策?
请参阅:驱逐政策http://redis.io/topics/lru-cache
然后我会检查,以确保您不会无意中在您的redis对象上设置PERSIST。我认为,PERSISTED对象不能成为LRU。
您可以使用http://redis.io/commands/ttl TTL查找密钥的时间限制。和"键"获取密钥列表(这在生产服务器上很危险,因为列表可能很长并且阻塞)。 http://redis.io/commands/keys
-daniel