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

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

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

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

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

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

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

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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明...
    不变甄心阅读 706评论 0 4
  • 前言 在上一篇文章中,介绍了Redis内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复...
    Java架构阅读 2,348评论 3 21
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    空语阅读 1,608评论 0 2
  • 企业级redis集群架构的特点 海量数据 高并发 高可用 要达到高可用,持久化是不可减少的,持久化主要是做灾难恢复...
    lucode阅读 2,221评论 0 7
  • 在我爱的喜鹊桥上, 共同画下爱情的模样。 可是 离去时多么慌张, 天空锈着死去的鸳鸯。 金色的銮驾不让神圣掩盖辉煌...
    以梦为马所到所栖阅读 293评论 1 4