Redis的持久化


什么是持久化
说明:Redis运行环境在内存中,如果redis服务器关闭,则内存数据将会丢失.

需求: 如何保存内存数据呢?

解决方案: 可以定期将内存数据持久化到磁盘中.

持久化策略规则:

当redis正常运行时,定期的将数据保存到磁盘中,当redis服务器重启时,则根据配置文件中指定的持久化的方式,实现数据的恢复.(读取数据,之后恢复数据.)

RDB

RDB其实就是把数据以快照的形式保存在磁盘上。什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。

rdb模式特点

1).RDB模式是Redis默认的策略.

2).RDB模式能够定期(时间间隔)持久化. 弊端:可能导致数据的丢失.

3).RDB模式记录的是内存数据的快照.持久化效率较高. 快照只保留最新的记录.

触发机制

1、save的规则满足的情况下,会自动触发rdb规则
2、执行flushall命令
3、退出redis
备份就会自动生成一个rdb文件

如何恢复rdb文件

1、只需要将rdb文件放在redis启动目录就可以了

AOF

aof模式特点

1).AOF模式默认条件下是关闭的.需要手动开启(appendonly 后面改成yes)

2).AOF模式记录的是用户的操作过程,所以可以实现实时持久化操作.

3).AOF模式由于记录的是实时的操作过程,所以持久化文件较大.需要定期维护.

aof默认是文件无限追加

appendonly.aof 记录我们所有写操作

如果aof文件出现错误,这时候redis无法启动,
需要去修复aof文件,redis提供了一个工具:
redis-check-aof – fix
操作:

redis-check-aof – fix appendonly.aof

优点:
1、每次修改都同步,文件完整性更好
2、每秒同步一次,可能会丢失1秒的数据
3、从不同步,效率最高!
缺点:
1、相对于数据文件来说,aof远远大于rdb;修复速度也不如rdb
2、Aof运行效率比rdb慢,所以redis默认配置是rdb。

总结

1、RDB持久化方式是能在指定时间间隔内对数据进行快照存储

2、AOF持久化方式是记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以Redis协议追加保护每次写的操作到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。

3、只做缓存,如果只希望数据在服务器运行的时候存在,可以不使用任何持久化。

4、同时开启两种持久化方式,当redis重启的时候会优先载入AOF文件来恢复原始数据,引物在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值