1)对于不同redis层的maxmemory保留配置,理想值是多少?我们有什么可以参考的建议/指导吗?
2)以下哪一种方法更好:
->为redis缓存中的所有对象/键实现ttl,并将maxmorey策略设置为“volatile lru”
->或者,不要使用ttl,只将maxmemory策略设置为“allkeys lru”?
->或者,还有其他建议吗?
感谢对此的任何意见。

最佳答案

由于此官方document声明了maxmemory reserved:
maxmemory reserved设置配置在故障转移期间为非缓存操作(如复制)保留的内存量(以MB为单位)。当碎片率很高时,也可以使用它。设置此值允许您在负载变化时获得更一致的redis服务器体验。对于写得很重的工作负载,应该将此值设置得更高。当为此类操作保留内存时,它不可用于存储缓存的数据。
注意:maxmemory reserved设置仅适用于标准和高级缓存。
为了为maxmemory策略设置适当的逐出策略,需要考虑应用程序的访问模式。正如document提到的maxmemory策略:
当您希望请求的流行程度达到幂律分布时,使用allkeys-lru策略,也就是说,您希望元素的子集比其他元素的访问频率要高得多。如果你不确定的话,这是个不错的选择。
如果您希望在创建缓存对象时使用不同的ttl值,从而能够为redis提供有关哪些内容适合过期的提示,请使用volatile ttl。
有关更多详细信息,请参阅document。此外,您可以按照此tutorial来排除azure redis缓存的故障,并按照此tutorial来监视azure门户中的redis缓存。

关于redis - Azure Redis缓存 - 需要有关选择MaxMemory-Reserved和MaxMemory-Policy的帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42170200/

10-12 22:08