Redis + Resque:使用Redis和Resque的maxmemory政策是什么?

时间:2015-03-01 20:38:32

标签: memory redis resque

在redis中使用Resque我一直在收到redis的OOM command not allowed when used memory > 'maxmemory'错误。现在显然我似乎应该增加当前500MB的内存redis,但我想确保我有正确的max-memory / data-eviction策略集,以便使用带有resque的redis。目前它在volatile-lru上。 (我在这方面找文档,但找不到任何东西。)

this stackoverflow answer以及来自redis的以下数据..

keys=81824,expires=0,avg_ttl=0
evicted_keys    0
expired_keys    0

...让我相信我有一些配置错误,增加更多内存只会解决问题。

如果重要,复制和数据持久性目前都已关闭。

1 个答案:

答案 0 :(得分:1)

使用Resque时,您不希望Redis驱逐任何Resque的密钥。 Resque本身将删除不再需要的键。因此,您应使用noevictionvolatile-lru作为maxmemory-policy;也不会驱逐没有设定过期时间的密钥。

如果Redis使用这些策略耗尽内存,这意味着您的Resque队列变得太长,您需要增加maxmemory(并可能提供更多RAM)或减少Resque作业的数量(使用数据)批处理技术等。)。