问题一:在哪些场景下建议开启被动删除键的 lazy free 机制?
在哪些场景下建议开启被动删除键的 lazy free 机制?
参考回答:
建议在以下场景下开启被动删除键的 lazy free 机制:
对于设置有 TTL 的键过期清理(lazyfree-lazy-expire),因为 TTL 是自适应调整的速度。
对于隐式包含 DEL 操作的命令(lazyfree-lazy-server-del),如 rename 命令,以避免删除 big key 时的阻塞。
如果 slave 内存变动不大,进行全量数据同步时(slave-lazy-flush),以减少全量同步耗时和主库因输出缓冲区爆涨引起的内存使用增长。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639495
问题二:为什么不建议在生产环境中将 lazyfree-lazy-eviction 设置为 yes?
为什么不建议在生产环境中将 lazyfree-lazy-eviction 设置为 yes?
参考回答:
不建议将 lazyfree-lazy-eviction 设置为 yes,因为此场景下开启 lazy free 可能使淘汰键的内存释放不及时,导致 Redis 内存超用,超过 maxmemory 的限制。在使用时,请结合业务进行测试。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639496
问题三:Redis 的 lazy free 功能有哪些可以监控的数据指标?
Redis 的 lazy free 功能有哪些可以监控的数据指标?
参考回答:
Redis 的 lazy free 功能可以监控的数据指标只有一个,即 lazyfree_pending_objects,它表示 Redis 执行 lazy free 操作,在等待被实际回收内容的键个数。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639497
问题四:lazyfree_pending_objects 这个指标有什么作用?
lazyfree_pending_objects 这个指标有什么作用?
参考回答:
lazyfree_pending_objects 这个指标可以监测 Redis lazy free 的效率或堆积键数量。比如在执行 flushall async 场景下,会有少量的堆积。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639498
问题五:Redis 在什么情况下会启用 lazy free?
Redis 在什么情况下会启用 lazy free?
参考回答:
Redis 在判断释放 KEY 的代价(cost)大于 LAZYFREE_THRESHOLD(默认值为 64)时,会启用 lazy free。这个代价的计算与键的数据类型和大小有关。
关于本问题的更多回答可点击原文查看: