- AOF持久化介绍
- append only file,追加文件的方式,文件容易被人读懂
- 以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的
- 写入过程宕机,也不影响之前的数据,可以通过redis-check-aof检查修复问题
- 配置实战
- appendonly yes,开启AOF
- AOF文件名通过appendfilename配置设置,默认文件名appendonly.aof
- 存储路径同RDB持久化方式一致,使用dir配置
- 核心原理
- redis每次写入命令会追加到aof_buf(缓冲区)
- AOF缓冲区根据对应的策略向硬盘做同步操作
- 高频AOF会带来影响,特别是每次刷盘
- 提供了3种同步方式,在性能和安全性方面做出平衡
- appendfsync always:每次有数据修改发生时都会写入AOF文件,消耗性能多
- appendfsync everysec:每秒钟同步一次,该策略为AOF的缺省策略
- appendfsync no:不主从同步,由操作系统自动调度刷磁盘,性能是最好的,但是最不安全
# 任何ip都可以访问
bind 0.0.0.0
# 守护进程
daemonize yes
# 密码
requirepass 123456
# 日志文件
logfile "/usr/local/redis/log/redis.log"
# 持久化文件名称
dbfilename redis.rdb
# 持久化文件存储路径
dir /usr/local/redis/data
# 持久化策略,10秒内有1个key改动,执行快照
save 10 1
# 导出rdb数据库文件压缩字符串和对象,默认是yes,会浪费CPU但是节省空间
rdbcompression yes
# 导入时是否检查
rdbchecksum yes
# 开启AOF
appendonly yes
# AOF文件名称
appendfilename "appendonly.aof"
# AOF同步方式 everysec 每秒同步
appendfsync everysec