定时过期:每个设置过期时间的 key 都需要创建一个定时器, 到过期时间就会立即清除。该策略可以立即清除过期的数据,对 内存很友好;但是会占用大量的 CPU 资源去处理过期的数据,从 而影响缓存的响应时间和吞吐量。 惰性过期:只有当访问一个 key 时,才会判断该 key 是否已过 期,过期则清除。该策略可以最大化地节省 CPU 资源,却对内存 非常不友好。极端情况可能出现大量的过期 key 没有再次被访问, 从而不会被清除,占用大量内存。 定期过期:每隔一定的时间,会扫描一定数量的数据库的 expires 字典中一定数量的 key,并清除其中已过期的 key。该策 略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每 次扫描的限定耗时,可以在不同情况下使得 CPU 和内存资源达到 最优的平衡效果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。