redis过期key的处理
在使用Redis的时候,可以设置key的过期时间,但是当key到达过期时间时,是否会被redis立即删除?答案是no。这里就涉及redis key的过期策略:定时删除和惰性删除
定期删除
隔一段时间,随机抽取一些设置过期时间的key,检查其是否过期,如果过期就删除
惰性删除
当客户访问数据时,如果过期就会删除
Redis同时使用定期删除和惰性删除两种策略,可以在很好的使用的cpu时间和避免浪费内存之间取得平衡,但是同时也存在一个问题,当定期删除和惰性删除无法有效的删除key时,会造成内存的巨大浪费,这就又涉及到了内存淘汰机制。
内存淘汰机制
常用的内存淘汰策略:
• volatile-lru:最近最少使用算法,从设置过期时间的数据中将空转时间最长的key删掉
• volatile-lfu:最近最不经常使用算法,从设置过期时间的数据中将某段时间之内使用频次最低的key删掉
• volatile-ttl:从设置过期时间的数据中选择过期时间最早的key删掉
• volatile-random:从设置过期时间的数据中随机删除
• allkeys-lru: 从所有的数据中将空转时间最长的key删掉
• allkeys-lfu:从所有的数据中将某段时间之内使用频次最低的key删掉
• allkeys-random:从所有的数据中随机删除
• noeviction:不做任何处理,客户访问就删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南