Redis的过期策略

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

  1. 定时过期(Timed Expiration)

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

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

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

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

相关推荐
天涯海风2 小时前
检索增强生成(RAG) 缓存增强生成(CAG) 生成中检索(RICHES) 知识库增强语言模型(KBLAM)
人工智能·缓存·语言模型
不羁。。3 小时前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV4 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199854 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19934 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
秃了也弱了。4 小时前
Redisson3.14.1及之后连接阿里云redis代理模式,使用分布式锁:ERR unknown command ‘WAIT‘
redis·阿里云·代理模式
染翰5 小时前
lua入门以及在Redis中的应用
开发语言·redis·lua
小猿姐6 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
NocoBase7 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源
麻辣清汤7 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi