我有一个简单的Redis安装,它似乎慢慢地吃了越来越多的内存,在一个稳定的斜坡,直到我重新启动Redis服务器。
我使用redis作为caching层,目前我没有在我的密钥上设置过期,因为我不认为这是必要的。 我以为redis会丢掉旧密钥或者其他东西 – 尽pipe显然这没有发生。
什么是处理这种情况的最好方法,我应该在我的密钥上设置一个短暂的过期时间,还是有一些内置到redis中的function来过期旧密钥,以腾出空间给新的密钥?
先谢谢了!
Redis旧的标记行是:“一个持久的键值数据库,内置ANSI-C为Posix系统编写的networking接口”。
我相信键默认是持久的。 您将不得不在一段时间后想要离开的密钥上设置EXPIRE。 正如womble所说,它不是memcached。
有关命令参考: http : //redis.io/topics/expire
您可以在redis conf中设置maxmemory
configurationvariables,然后将maxmemory-policy
设置为allkeys-lru
或allkeys->random
,这将允许将密钥从数据库中删除,并使redis像caching一样工作。 既然你使用它作为caching,你可以注释掉所有的save
行,所以redis不会保存到磁盘。
这可能是最简单的方法,你不必切换到memcached,我build议allkeys-lru
这将允许任何关键被删除与那些最近最less使用被删除第一。