美文网首页
Redis 持久化及主从复制对过期键的处理

Redis 持久化及主从复制对过期键的处理

作者: 杰哥长得帅 | 来源:发表于2019-02-06 23:29 被阅读37次

RDB 持久化对过期数据的影响

在执行 SAVE 或者 BGSAVE 的时候,会创建 RDB 文件,它仅保存非过期键,已经过期的不会保存在 RDB 中

在启动 Redis 服务器的时候,如果开启了 RDB 功能,那么会自动载入 RDB 文件(从配置文件设置的工作目录中),但是在主从模式下会有所不同:

  • 主服务器:仅会载入未过期键,已过期的不载入
  • 从服务器:全部载入无论是否过期,后期主从同步的时候从服务器的数据库会被清空(因为后面的第一次同步会是重同步,而不是部分重同步),所以即使载入也没有关系

AOF 持久化对过期数据的影响

当服务器以 AOF 持久化模式运行时,如果数据库中某个键已过期,但还没被删除,那么 AOF 文件不会因为这个过期键而产生任何影响

当触发惰性删除或者定期删除之后,会在 AOF 文件中追加一条删除指令

在执行 AOF 重写过程中,过期数据不会被保存到重写后的 AOF 文件中

主从复制模式中对过期键的处理

当 Redis 运行在主从复制的模式下时,从服务器的过期键删除动作由主服务器控制:

  • 主服务器在删除一个过期键之后,会显式地向所有从服务器发送一个 DEL 命令,告知从服务器删除这个过期键
  • 从服务器在执行客户端发送的读命令时,即使碰到过期键也不会将过期键删除,而是继续像处理未过期的键一样来处理过期键
  • 从服务器只有在接到主服务器发来的 DEL 命令之后,才会删除过期键

由主服务器来控制从服务器统一删除过期键,可以保证主从服务器数据一致性

相关文章

网友评论

      本文标题:Redis 持久化及主从复制对过期键的处理

      本文链接:https://www.haomeiwen.com/subject/ovjisqtx.html