Redis持久化说明(rdb和aof)

Redis持久化说明

Redis为持久化提供了两种方式:

  • RDB:在指定的时间间隔能对你的数据进行快照存储。
  • AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。

RDB

在指定时间内将数据存储到dump.rdb中,优点速度快,消耗低,缺点是当redis突然宕机时,会丢失最后一段时间的数据。

触发机制:

1.redis.conf配置文件save项满足规则,则会触发

2.手动执行flushall命令,也会触发

3.退出redis控制台时,也会触发

说明:900s内修改了1次则保存,300s修改了10次则保存,60s内修改了10000则保存,我们只要开启了save项,RDB模式就开启了。

RDB模式做数据恢复,只需要将dump.rdb文件定期备份在一个别的地方,然后做恢复时,放置dir下,重启redis即可完成恢复


AOF

通过秒级来存放redis的所有执行操作至appendfilename.aof,优点是当redis突然宕机时,只会丢失最后一秒的数据,文件的完整性更好,缺点是速度很慢,消耗大,aof其实就是一个命令存放文本文件,会记录我们每一次执行的命令(也就是说我们可以手动恶意修改aof文件的内容.....)

触发机制:

1.每一次修改都会触发

2.每秒都会触发一次,所以突然宕机时只会丢失最后一秒的数据

 说明:AOF默认是关闭的appendonly no,修改成yes则开启

说明:no-appendfsync-on-rewrite no开关模式也是关闭的,由于AOF文件会无限增长,所以我们最好开启AOF时将此开关打开,这样,当我们AOF文件大小达到旧文件的2倍并且文件大小达到64MB时,将会重写一个AOF文件,可以看到,64MB是我们配置项auto-aof-rewrite-min-size 64mb配置的

AOF模式做数据恢复,和RDB的模式其实是一样的,不过AOF文件恢复之前,可以使用redis-check-aof --fix appendonly.aof命令检查aof文件内容是否有错误,不过redis-check-aof --fix当检测到某个内容有错误的时候,采取的手段是将错误内容直接删除掉,而不是修复。

posted @ 2022-02-24 16:44  RFAA  阅读(51)  评论(0编辑  收藏  举报