Redis的过期策略

Redis 支持的过期策略主要有以下几种:

  1. 定时过期(Timed Expiration)

    • 这种策略会在设置键的过期时间时,创建一个定时器,当达到指定的过期时间点时,立即执行删除操作。
    • 这种方式可以精确控制键的生命周期,但是如果有大量的键都设置了过期时间,会创建大量的定时器,对系统资源的消耗相对较高。
  2. 惰性过期(Lazy Expiration)

    • 当读取一个键时,Redis 会检查该键是否已经过期,如果已经过期,则在返回结果之前先删除这个键。
    • 这种方式只会在访问键的时候才检查其是否过期,因此不会像定时过期那样占用太多系统资源。但缺点是如果某些键很少或者根本不被访问,它们即使过期了也不会被及时清理,可能会占用内存直到被访问为止。
  3. 定期过期(Periodic Expiration)

    • Redis 会周期性地从设置了过期时间的键中随机测试一些键,并把其中已经过期的键删除。
    • 这种方法结合了定时过期与惰性过期的特点,在减少资源消耗的同时,能够较好地处理不被访问的过期键。

总结来说,Redis 的过期策略是通过定时、惰性和定期三种策略组合使用的方式,来平衡资源消耗和过期键的清除效率。在实际使用中,因为定时过期对资源消耗较大,通常不会单独使用,而是和惰性过期以及定期过期结合起来,以适应不同的场景需求。

相关推荐
辞旧 lekkk17 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
我是唐青枫19 小时前
终于不用手搓两级缓存了!C#.NET HybridCache 详解:L1 L2、标签失效与防击穿实战
redis·缓存·c#·.net
2301_8092047019 小时前
JavaScript中严格模式use-strict对引擎解析的辅助.txt
jvm·数据库·python
zjy2777719 小时前
mysql如何选择合适的索引类型_mysql索引设计实战
jvm·数据库·python
笨蛋不要掉眼泪19 小时前
Mysql架构揭秘:update语句的执行流程
数据库·mysql·架构
万邦科技Lafite19 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
秋920 小时前
ruoyi项目更换为mysql9.7.0数据库
数据库
Andya_net20 小时前
MySQL | MySQL 8.0 权限管理实践-精确赋予库、表只读等权限
android·数据库·mysql
筑梦之路21 小时前
harbor数据库报错权限异常如何处理——筑梦之路
数据库·harbor
czlczl200209251 天前
理解 MySQL 行锁:两阶段锁协议与热点更新优化
数据库·mysql