redis 过期策略

redis 主要使用了惰性删除定期删除两种过期策略。

  • 惰性过期:只有当访问一个 key 时,才会判断该 key 是否已过期,过期则清除。该策略可以最大化节省 CPU 资源,但对内存不友好。可能会出现大量的过期 key 没有被再次访问,从而不会被清除,占用大量内存。
  • 定期过期:每隔一定时间,会从 expires 字典中清除其中过期的 key。(expires 字典会保存所有设置了过期时间的 key 的过期时间数据)。

尽管采取以上两种过期策略,仍可能会导致 redis 内存被占满,这时需要redis 内存淘汰策略来决定如何处理写入和删除数据。