Redis知识梳理之单机数据库篇--过期键的处理

数据库由两个字典构成:

  1. dict:保存键值对
  2. expires:保存过期时间

1. 数据库过期键的删除

1.1 删除策略

针对过期的键主要有3种处理策略
过期删除策略
Redis综合使用惰性删除和定期删除两种策略:
惰性删除:所有读写命令执行前调用expireIfNeeded函数检查输入键是否过期,过期就删除(类似一个过滤器,避免命令接触到过期键)

定期删除:在规定时间内,分多次遍历数据库

1.2 RDB对过期键的处理

  • 过期键不会保存到新的RDB文件中
  • 主服务器载入RDB文件忽略过期键
  • 从服务器都会载入(但是主从同步时,从服务器数据清空,因此过期键不会有什么影响)

1.3 AOF对过期键的处理

  • 向AOF文件追加DEL命令,显式记录该键已删除。
  • AOF重写不会保存已过期的键。

1.4 复制模式下过期键的处理

  • 从服务器的删除动作由主服务器控制
  • 主服务器删除一个键之后会向所有从服务器发送一个DEL命令
  • 在未收到主服务器的命令时,从服务器意识不到过期键,而是像正常键一样处理,收到DEL命令才删除。

这种统一的、中心化的过期键删除策略可以保证主从一致性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值