redis开启rdb和aof后文件正确恢复

1.服务器环境:

3主3从,192.168.24.16,192.168.24.17,192.168.24.18,每一台服务器上2个节点,分别为主节点和从节点

 2.备份

开启的备份策略是默认的rdb,aof没有打开

使用 Redis Desktop Manager连接,数据库中有3条数据

现在我需要同时开启aof和rdb两个持久化策略,假如我们直接关闭redis,并且打开aof的开关,我们看看保存的数据还在不在。

更改配置之后重启redis发现数据没了

 

appendonly.aof + dump.rdb,优先用appendonly.aof去恢复数据,但是我们发现redis自动生成的appendonly.aof是没有数据的然后我们自己的dump.rdb是有数据的,但是明显没用我们的数据。很简单,就是虽然你删除了appendonly.aof,但是因为打开了aof持久化,redis就一定会优先基于aof去恢复,即使文件不在,那就创建一个新的空的aof文件。

在数据安全丢失的情况下,基于rdb冷备,如何完美的恢复数据,同时还保持aof和rdb的双开

停止redis,关闭aof,拷贝rdb备份,重启redis,确认数据恢复,直接在命令行热修改redis配置,打开aof,这个redis就会将内存中的数据对应的日志,写入aof文件中此时aof和rdb两份数据文件的数据就同步了

 现在我们模拟假如aof文件损坏,如何使用rdb文件恢复,我们先删除aof文件,关闭aof配置,再启动redis:发现数据已经恢复:

而且appendonly.aof文件也没有,此时,我们在redis的客户端执行命令:    config set appendonly yes

打开aof,此时在aof文件的位置就会生成appendonly.aof文件

 注意:在执行启动aof命令的时候,需要在所有的主节点全部执行,此命令只会在执行命令的节点生效。

重启redis,发现数据全部恢复正常,持久化方式也变成了rdb和aof同时执行。

 

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Redis中,RDBAOF是两种持久化机制,用于将内存中的数据持久化到磁盘上,以便在Redis重启时恢复数据。 RDBRedis Database)是Redis的默认持久化方式,它使用快照的形式将数据保存到硬盘上。当满足一定条件时,Redis会自动执行快照操作,将内存中的数据保存到RDB文件中。RDB文件是一个二进制文件,包含了Redis在某个时间点上的所有数据。RDB具有紧凑和高效的特点,在恢复大数据集时速度较快。但是,RDB只能定期保存数据,并且在发生故障时可能会导致一定量的数据丢失。 AOF(Append-Only File)则是一种追加写日志的方式来实现持久化。每当有新的写操作发生时,Redis会将该操作追加到AOF文件的末尾。当Redis重启时,通过重新执行AOF文件中的所有写操作来恢复数据。相比于RDBAOF具有更好的持久性,因为它可以记录每个写操作,避免了数据丢失。然而,AOF文件相对于RDB文件会更大,并且在恢复大数据集时,由于需要重新执行大量的写操作,恢复速度可能较慢。为了避免AOF文件过大,Redis提供了自动压缩和重写AOF文件的机制。 在选择RDBAOF之间的持久化方式时,需要根据实际需求来进行权衡。如果对数据的完整性要求较高,可以选择AOF方式;如果对数据的恢复速度和文件大小有较高的要求,则可以选择RDB方式。另外,也可以同时启用RDBAOF,以提高数据的安全性和灾难恢复能力。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值