Redis的持久化两种持久化方式RDB和AOF

Redis的持久化两种持久化方式RDB和AOF

有关于redis持久化的好文章比比皆是,在这里我就不仔细阐述了,大家可以出去搜索一下,我在这里做一个大致的诠释:

1、RDB

RDB(redis database),可以理解为快照/内存快照,RDB持久化过程是将当前进程中的数据生成快照存储到硬盘中,主要分为手动触发和自动触发。

2、AOF

AOF(append only file),以日志的方式记录每次写命令,服务重启的时候重新执行AOF文件中的命令来恢复内存数据。因为解决了数据持久化实时性的问题,所以目前AOF是Redis持久化的主流方式。

3、RDB和AOF的差异

RDB

优点:
1.RDB文件小,非常适用于定时备份,用于灾难恢复。
2.Redis加载RDB文件的速度比AOF快很多,因为RDB文件中直接存储的时内存数据,而AOF文件中存储的是一条条命令。
3.如果业务对数据完整性和一致性要求不高,RDB是很好的选择。
缺点:
1.一定时间做备份,redis意外down掉,可能最后一次数据没有到磁盘上
2.Fork的时候,内存中数据被copy了一份,2倍的膨胀性在内存中需要考虑
3.备份时占用内存,因为Redis 在备份时会独立创建一个子进程,将数据写入到一个临时文件(此时内存中的数据是原来的两倍哦),最后再将临时文件替换之前的备份文件。

AOF

优点:
1.数据的完整性和一致性更高
缺点:
1.因为AOF记录的内容多,文件会越来越大,数据恢复也会越来越慢。

总结:

1.RDB持久化基于内存快照存储二进制文件,AOF持久化基于写命令存储文本文件。
2.RDB文件采用了压缩算法,比较小;AOF文件随着命令的叠加会越来越大,Redis提供了AOF重写来压缩AOF文件。
3.恢复RDB文件的速度比AOF文件快很多。
4.RDB持久化方式实时性不好,所以AOF持久化更主流。
5.合理的使用AOF的同步策略,理论上不会丢失大量的数据。

4、Redis重启时加载持久化文件的顺序

  • Redis重启的时候优先加载AOF文件,如果AOF文件不存在再去加载RDB文件。
  • 如果AOF文件和RDB文件都不存在,那么直接启动。
  • 不论加载AOF文件还是RDB文件,只要发生错误都会打印错误信息,并且启动失败。

5.关于redis数据持久化之AOF配置

在启动redis服务的时候并没有aof数据持久化机制,所以接下来我们一起来配置一下吧!!!

let’s go let’s go let’s go

  • 第一步:修改redis配置文件(修改完redis配置文件之后,启动redis服务)
    vim 打开redid的配置文件(redis.conf)
  • appendonly yes //将no修改为yes
    是否开启AOF持久化
  • auto-aof-rewrite-percentage 1000 //默认是100

  • auto-aof-rewrite-min-size 512mb
    触发机制:Redis会记录上次重写时的AOF文件大小,默认配置时当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发

  • 第二步:执行以下操作(redis服务开启)
    在这里插入图片描述

redis-cli
select 3 //选择redis操作库
set name tom
set age 35
set flushall //清除了所有的数据
quit

  • 第三步 打开appendonly.aof文件
    在这里插入图片描述
    vim打开appendonly.aof文件(按住键盘的G)到文件的末尾,双击键盘小写的dd删除“flushall”所在的行(字眼)

去掉 aof 里 flush 的操作之后,最好利用 redis-check-aof这个工具来检测一下你修改过后的 aof 文件是否正常,以防启动恢复数据的时候出错

  • 第四步 找到appendonly.aof文件(此时redis服务已经停止)
  1. 先查看appendonly.aof是否可用
    redis-check-aof appendonly.aof
    在这里插入图片描述
    出现**"AOF is valid"表示appenonly.aof可用
    在这里插入图片描述
    出现
    “AOF is not valid”** 解决办法:
    在这里插入图片描述
    redis-check-aof appendonly.aof // 检查appendonly.aof文件命令行
    redis-check-aof --fix appendonly.aof // 修复损坏的appendonly.aof文件命令行

第四步:重新启动redis服务
在这里插入图片描述
用Redis Desktop Manager查看数据是否已经恢复

—end—

参考资源:
Redis 持久化之 AOF 配置详解
redis appendonly.aof文件损坏修复方法
深入Redis的RDB和AOF两种持久化方式以及AOF重写机制的分析
redis aof 文件 恢复数据


redis可能出现的报错处理:
解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to…

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值