1)为不同的Redis层设置MaxMemory-Reserved配置的理想值是多少?我们是否有任何可以参考的建议/指导?
2)以下哪一个是更好的方法:
- >为Redis缓存中的所有对象/密钥实施TTL,并将MaxMemorey-Policy设置为“volatile-lru”
- >或者,不要使用TTL,只需将MaxMemory-Policy设置为“allkeys-lru”?
- >或者,任何其他建议?
感谢对此的任何意见。
答案 0 :(得分:0)
正如此官方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缓存。