仅将Redis密钥子集保留到磁盘的最佳方法

时间:2011-09-30 20:08:52

标签: caching redis

是否可以使用Redis仅将某些密钥保留在磁盘上?现在是运行单独的Redis服务器的最佳解决方案,其中一台服务器可以丢弃缓存而另一台服务器有更多重要数据需要定期刷新到磁盘(例如网页上的访问计数器)

1 个答案:

答案 0 :(得分:2)

您可以在密钥的子集上设置到期日期。它们将被保存到磁盘,但只有在它们到期之前。这可能足以满足您的使用案例。

然后,您可以使用redis maxmemorymaxmemory-policy配置选项来限制内存使用量,并告诉redis在达到最大内存时要执行的操作。如果您使用volatile-lruvolatile-ttl选项,Redis将仅丢弃那些在内存不足时过期的密钥,丢弃最近使用的密钥或具有最近过期密钥的密钥(时间到直播)。

但是,如上所述,这些值仍会在到期之前存入磁盘。如果确实需要避免这种情况,那么您的假设是正确的,而另一台服务器看起来是唯一的选择。