redis 过期策略
redis 主要使用了惰性删除和定期删除两种过期策略。
- 惰性过期:只有当访问一个 key 时,才会判断该 key 是否已过期,过期则清除。该策略可以最大化节省 CPU 资源,但对内存不友好。可能会出现大量的过期 key 没有被再次访问,从而不会被清除,占用大量内存。
- 定期过期:每隔一定时间,会从 expires 字典中清除其中过期的 key。(expires 字典会保存所有设置了过期时间的 key 的过期时间数据)。
尽管采取以上两种过期策略,仍可能会导致 redis 内存被占满,这时需要redis 内存淘汰策略来决定如何处理写入和删除数据。