redis提供了rdb和aof两种持久化机制,
redis持久化 dump.rdb后,启用aof持久化,再重启 redis, redis只会加载aof持久化的 appendonly.aof文件,如果它不存在,那会创建一个新的空的文件,从而导致内存中丢失 dump.rdb的数据.
解决方式:停止 redis,关闭aof,重启 redis,确保 dump.rdb数据恢复在内存中,使用命令行热修改 redis配置的方式打开aof,此时 redis就会以aof持久化的形式将内存中的数据写入 appendonly.aof文件,然后停止 redis,修改配置文件将aof手动打开.
情景:主从架构的 master关闭rdb和 aof持久化,slave作为 master的数据热备在采用 master-slave的水平扩展架构的时候,格外的需要注意: master必须要开启持久化,不建议用slave节点作为 master节点的数据热备.我们知道主从复制的架构中,所有的写操作交由 master负责,slave分担读的操作,slave中的数据是从 master同步过来的.假如 master的rdb和aof都关闭了,数据全部在内存中,那么 master宕机重启时,发现本地没有可以恢复的数据,导致 master内存数据为空,然后 master将空的数据集同步到slave节点,导致slave的数据全部清空.所以呢 master必须要开启持久化!即使我们采用高可用机制的哨兵模式,即 master宕机时,slave节点通过选举转变为 master节点,在这种情况下,可能哨兵模式还没检测到 master节点宕机, master节点就自动重启了,所以呢还是可能导致所有slave节点数据清空.
原文链接:
以上就是土嘎嘎小编为大家整理的Redis持久化和数据恢复相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!