Redis使用大量的RAM,不断增加,直到我重新启动它

我有一个简单的Redis安装,它似乎慢慢地吃了越来越多的内存,在一个稳定的斜坡,直到我重新启动Redis服务器。

我使用redis作为caching层,目前我没有在我的密钥上设置过期,因为我不认为这是必要的。 我以为redis会丢掉旧密钥或者其他东西 – 尽pipe显然这没有发生。

什么是处理这种情况的最好方法,我应该在我的密钥上设置一个短暂的过期时间,还是有一些内置到redis中的function来过期旧密钥,以腾出空间给新的密钥?

先谢谢了!

Redis旧的标记行是:“一个持久的键值数据库,内置ANSI-C为Posix系统编写的networking接口”。

我相信键默认是持久的。 您将不得不在一段时间后想要离开的密钥上设置EXPIRE。 正如womble所说,它不是memcached。

有关命令参考: http : //redis.io/topics/expire

您可以在redis conf中设置maxmemoryconfigurationvariables,然后将maxmemory-policy设置为allkeys-lruallkeys->random ,这将允许将密钥从数据库中删除,并使redis像caching一样工作。 既然你使用它作为caching,你可以注释掉所有的save行,所以redis不会保存到磁盘。

这可能是最简单的方法,你不必切换到memcached,我build议allkeys-lru这将允许任何关键被删除与那些最近最less使用被删除第一。