黑猴子的家:Redis 持久化 之 AOF
AOF 是增量备份,占用空间比RDB要大,恢复数据要比RDB慢很多,把全部命令记录执行一遍
以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
1、AOF默认不开启,需要手动在配置文件中配置
开启AOF
[[email protected] myredis]# vim redis.conf
appendonly yes
2、可以在redis.conf中,配置文件名称,默认为 appendonly.aof
[[email protected] myredis]# vim redis.conf
##AOF文件的保存路径,同RDB的路径一致
dir "/opt/module/myredis/"
appendfilename "appendonly.aof"
dbfilename dump.rdb
3、AOF 小案例
https://www.jianshu.com/p/f40b4e091a85
4、RDB 转 AOF 错误操作案例
https://www.jianshu.com/p/858cb36974ba
5、如何正确 RDB 转 AOF 呢?
https://www.jianshu.com/p/1eb8dea15624
6、AOF文件故障备份
(1)AOF的备份机制和性能虽然和RDB不同, 但是备份和恢复的操作同RDB一样,都是拷贝备份文件,需要恢复时再拷贝到Redis工作目录下,启动系统即加载。
[[email protected] myredis]# cp appendonly.aof appendonly.aof20181010bak
[[email protected] myredis]# cp dump.rdb dump.rdb20181010bak
(2)AOF和RDB同时开启,系统默认取AOF的数据
7、AOF文件故障恢复
(1)AOF文件的保存路径,同RDB的路径一致。
(2)如遇到AOF文件损坏
可通过 redis-check-aof --fix appendonly.aof 进行恢复
//修复AOF
[[email protected] redis-3.2.5]# redis-check-aof --fix appendonly.aof
//不保存退出 用于rdb模式切换 AOF 模式
[[email protected] redis-3.2.5]# shutdown nosave
//将RDB数据,重写到AOF里面
[[email protected] redis-3.2.5]# bgrewriteaof
8、rdb 转 aof 正确做法
停机重启做法
先把rdb通过下面的命令(bgrewriteaof) 生成相对应的aof ,在改配置文件,重启
做之前,数据最好先备份
127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started
127.0.0.1:6379>
不停机做法
127.0.0.1:6379> config get *
127.0.0.1:6379> bgrewriteaof
127.0.0.1:6379> config set appendonly "yes"
防止以后重启,动态修改rdb转aof后修改配置文件
[[email protected] redis-3.2.5]# vim myredis/redis.conf
appendonly yes
9、AOF同步频率设置
始终同步,每次Redis的写入都会立刻记入日志
每秒同步,每秒记入日志一次,如果宕机,本秒的数据可能丢失。
把不主动进行同步,把同步时机交给操作系统