AOF介绍
只做追加操作的文件,Append Only File
记录redis服务所有写操作
不断的将新的写操作,追加到文件的末尾
使用cat命令可以查看文件内容
参数配置
文件名
appendfilename “appendonly.aof” 指定文件名
appendonly yes 启用aof ,默认no
AOF文件记录写操作的方式
appendfsync always 有新写操作立即记录
appendfsync everysec 每秒记录一次
appendfsync no 从不记录
**
RDB优点:
**
可以灵活的设置同步持久化appendfsync always或异步持久化appendfsync verysec
宕机时,仅可能丢失1秒的数据
**
RDB的缺点
**
AOF文件的体积通常会大于RDB文件的体积
执行fsync策略时的速度可能会比RDB慢
使用AOF文件恢复数据
[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown
[root@redisA 6379]# rm -rf dump.rdb
[root@redisA 6379]# vim /etc/redis/6379.conf
appendonly yes //启用aof,默认no
appendfilename "appendonly.aof" //文件名
appendfsync everysec //每秒记录一次
[root@redisA 6379]# vim /etc/redis/6379.conf
[root@redisA 6379]# /etc/init.d/redis_6379 start
[root@redisA 6379]# ls //会出现appendonly.aof文件
appendonly.aof dump.rdb nodes-6351.conf
[root@redisA 6379]# cat appendonly.aof //无内容
[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
192.168.4.51:6379> set v1 a1
OK
192.168.4.51:6379> set v2 a2
OK
192.168.4.51:6379> keys *
1) "v2"
....
[root@redisA 6379]# cat appendonly.aof //有数据
使用AOF恢复数据
备份数据
[root@redisA 6379]# cp appendonly.aof appendonly.aof.bak
[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown
删除数据
[root@redisA 6379]# rm -rf appendonly.aof
[root@redisA 6379]# /etc/init.d/redis_6379 start
[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
192.168.4.51:6379> keys *
(empty list or set)
恢复数据
[root@redisA 6379]# mv appendonly.aof.bak appendonly.aof
mv: overwrite ‘appendonly.aof’? y
[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown
[root@redisA 6379]# /etc/init.d/redis_6379 start
[root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
192.168.4.51:6379> keys *
修复AOF文件,把文件恢复到最后一次的正确操作
[root@redisA 6379]# vim appendonly.aof
*2 //可以把这一行删除
$6
...
[root@redisA 6379]# redis-check-aof --fix appendonly.aof //恢复文件
0x 0: Expected prefix '*', got: '$'
AOF analyzed: size=311, ok_up_to=0, diff=311
This will shrink the AOF from 311 bytes, with 311 bytes, to 0 bytes
Continue? [y/N]: y
Successfully truncated AOF