栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis 过期键的删除策略

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis 过期键的删除策略

Redis过期键的删除策略

常见的对于过期键的删除策略有以下几种:

定时删除

在设置每个键的时候,设置一个timer,到期就删除该键

  • 优点:对内存有效,及时删除过期键
  • 缺点:对cpu不友好,当过期键多的时候,删除过期键这一行为会占用很多cpu
惰性删除

只在读取键时,对过期时间进行判断,如果过期就删除,不过期就返回该键。

  • 优点: 对CPU友好
  • 缺点:对内存不友好,对于过期的键,不能及时删除,很可能造成过期键堆积。
定期删除

前两种方式的折中,每隔一段时间执行一次过期键的删除策略,通过限制删除过期键的时长和频率来减少删除操作对CPU时间的影响。

Redis中的策略

Redis中对于过期键的删除策略为惰性删除和定期删除策略的结合。

Redis如何保存过期键

在数据库的 RedisDb 结构中保存了一个名为 expires的字典,字典的键为指向某个键对象,字典的值为一个毫秒级的 unix 时间戳。

RDB、AOF对过期键的处理
  1. 生产RDB文件时,跳过过期键,载入RDB文件时,主服务器跳过过期键,从服务器载入(难以理解)。
  2. AOF重写时,跳过过期键,AOF写入时(服务器以AOF持久化模式运行),对过期键不做处理,

本文章总结于黄健宏老师的《Redis设计与实现》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号