【Redis】3-4 Redis的持久化机制 - AOF

   目录

1. 内容概要

1.1 总结

2. 本书目录


1. 内容概要


AOF特点

1. 以日志追加的形式来记录用户请求的写操作。
2. 只记录写操作
3. redis的aof恢复其实就是把追加的文件从开始到结尾读取执行写操作。

1.1 总结

        适合场景:实时性数据恢复

1.1.1 RDB

优点:

1.AOF更加耐用,可以以秒级别为单位备份,如果发生问题,也只会丢失最后一秒的数据,大大增加了可靠性和数据完整性。所以AOF可以每秒备份一次,使用fsync操作。
2. 以log日志形式追加,如果磁盘满了,会执行 redis-check-aof工具
3.当数据太大的时候,redis可以在后台自动重写aof。当redis继续把日志追加到老的文件中去时,重写也是非常安全的,不会影响客户端的读写操作。
4. AOF日志包含的所有写操作,会更加便于redis的解析恢复

缺点:

1. 相同的数据,AOF比RDB大
2. 针对不同的同步机制,AOF会比RDB慢,因为AOF每秒都会备份做写操作,这样相对与RDB来说就略低。每秒备份fsync没毛病,但是如果客户端的每次写入就做一次备份fsync的话,那么redis的性能就会下降。
3. 容易出现bug,就是数据恢复的时候数据不完整,这样显得AOF会比较脆弱,容易出现bug,因为AOF没有RDB那么简单,但是呢为了防止bug的产生,AOF就不会根据旧的指令去重构,而是根据当时缓存中存在的数据指令去做重构,这样就更加健壮和可靠了。

1.1.2 AOF的配置

配置描述
appendonly noAOF 默认关闭,yes开启
appendfilename "appendonly.aof"AOF的文件名

appendfsync everysec
no:不同步
everysec:每秒备份,推荐使用
always:每次操作都会备份,安全并且数据完整,但是慢性能差
no-appendfsync-on-rewrite no重写的时候是否要同步,no可以保证数据安全
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 重写机制:避免文件越来越大,自动优化压缩指令,会fork一个新的进程去完成重写动作,新进程里的内存数据会被重写,此时旧的aof文件不会被读取使用,类似rdb
#当前A0F文件的大小是上次A0F大小的100%并且文件体积达到64m,满足两者则触发重写(生产环境设置往往比较大如:5g

1.1.3 到底采用RDB还是AOF呢?  什么是冷热备份?

1. 接受缓存丢失,用RDB
2. 实时性的数据用AOF
3. 冷热备份,使用RDB和AOF结合一起做持久化

  • RDB做冷备,可以在不同时期对不同版本做恢复,
  • AOF做热备,保证数据仅仅只有1秒的损失。
  • Redis恢复会先加载AOF,如果AOF有问题会再加载RDB,这样就达到冷热备份的目的了。

2. 本书目录

点击进入

posted @ 2023-02-06 20:19  随风落木  阅读(0)  评论(0编辑  收藏  举报  来源