本文内容来自尚硅谷任务19:Redis_持久化之AOF http://www.gulixueyuan.com/course/44/task/1140/show
在看本文之前可先看redis总结(五)--RDBhttps://blog.csdn.net/lsx2017/article/details/84702976
1说明
1.1 如果系统中开启了aof与rdb两种持久化数据的方式,则在数据库启动时,数据库的数据默认会加载aof文件的数据而不会加载rdb文件的数据。假如aof文件数据损坏,rdb文件内容可正常加载,启动数据也会加载aof文件数据,并且数据库无法启动。
2.2 针对上面讲的aof文件损坏,解决的办法是。进入到bin目录,执行 redis -check -aof --fix append.aof 来修复aof文件,他是吧不符合语法规范的内容删除了,不符合语法规范的内容可能来自丢包、病毒之内的。
2开启aof
在数据配置
appendonly yes:开启aof方式
appendfilename "appendonly.aof" : 表示aof启动时加载appendonly.AOF文件
3aof执行的三种策略
在配置文件中进行如下配置
appendfsync always : 同步持久化 每次发生数据变更会被立即记录到磁盘 性能较差但数据完整性比较好
appendfsync eversec : 异步操作,每秒记录 如果一秒内宕机,有数据丢失
appendfsync no : 表示从不同步数据
4优劣势
优势:
appendfsync always : 同步持久化 每次发生数据变更会被立即记录到磁盘 性能较差但数据完整性比较好
appendfsync eversec : 异步操作,每秒记录 如果一秒内宕机,有数据丢失
appendfsync no : 表示从不同步数据
劣势:
相同数据集的数据而言aof文件要远大于rdb文件,恢复速度慢于rdb
Aof运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同