码上敲享录 > Redis面试题 > Redis 的数据过期策略是什么?

Redis 的数据过期策略是什么?

上一章章节目录下一章 2023-07-15已有320人阅读 评论(0)

Redis中的数据过期策略主要是通过设置过期时间(expiration time)来实现的。当一个键(key)设置了过期时间后,在过期时间到达之后,该键会被自动删除并释放内存。


Redis的数据过期策略是基于惰性删除(lazy deletion)和定期删除(periodic deletion)两种方式。


1. 惰性删除:在对一个键进行读写操作时,Redis会检查该键是否过期,如果过期则会立即删除。这种方式确保了过期键被及时删除,但也带来了一定的性能开销,因为每次操作都需要进行过期键的检查。


2. 定期删除:Redis会以一定的频率,通过在每个数据操作命令中随机抽取一些键进行过期检查和删除。该频率通过`hz`配置项进行设置,默认为每秒10次。定期删除可以保证过期键及时被删除,同时减轻了惰性删除带来的性能开销。


Redis并不是立即在键过期后立即删除,而是在键被访问时才进行过期检查。这是因为通过惰性删除和定期删除机制,Redis能够更好地平衡过期键的删除和性能之间的关系。


需要注意的是,定期删除并不保证每次都会删除所有过期键,因为删除操作是在一个固定的频率内进行的。而且,即使过期键没有被删除,当访问到过期键时,在对该键进行读写操作时,Redis会立即进行惰性删除。


通过设置键的过期时间,Redis提供了一种灵活和简单的方式来管理数据的有效期,帮助用户实现过期数据自动清理,减少无效数据的存储和内存占用。同时,过期策略的设计也保证了Redis的性能,并避免了频繁的过期键检查操作。


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交