redis之AOF持久化过程
流程图
在redis.conf文件中配置appendonly为yes则开启aof持久化机制
#开启aof持久化,默认关闭为no
appendonly no
也可以在命令行开启
aof刷盘策略
#每个写操作都会同步刷盘。
appendfsync always
#执行命令后先放入aof缓冲区,每秒钟将缓冲区数据刷盘一次,redis的默认策略
appendfsync everysec
#不主动刷盘,由操作系统处理
appendfsync no
aof文件记录的是redis命令的追加操作,通常比rdb文件大得多,例如字符串类型对同一个key多次写操作最后一次才有意义,因此可以通过执行bgrewriteaof命令重写aof文件,达到用最少命令得到相同效果
也可以配置redis促发阈值时进行bgrewriteaof操作
#auto-aof-rewrite-percentage 的默认值为100,
#这意味着当AOF文件的大小增长到上一次重写后大小的两倍时,
#Redis将自动触发AOF文件的重写操作。这个参数的设置有助于控制AOF文件的大小,
#避免其无限增长,从而优化文件的大小和性能
auto-aof-rewrite-percentage 100
# 当前AOF文件超过64mb才会自动进行AOF重写
auto-aof-rewrite-min-size 64mb
aof持久化机制优点:
1:更高的数据安全性:AOF记录了所有的写操作,因此在大多数情况下,它可以提供比RDB更高的数据安全性
2:更好的灾难恢复:AOF文件是一个可读的文本文件,包含了所有的写操作,因此可以更容易地进行灾难恢复
3:实时持久化:AOF支持实时持久化,每次执行写命令时都会立即将操作追加到文件中,确保数据的实时性
aof持久化机制缺点:
1:更大的存储空间:由于AOF记录了所有的写操作,因此它的体积通常会比RDB大得多
2:较慢的恢复速度:由于需要逐条执行写操作来恢复数据,AOF的恢复速度通常会比RDB慢
3:更复杂的实现:AOF的实现相对于RDB来说更复杂,需要处理更多的细节问题,如命令追加、文件写入策略等
生产环境选用哪种持久化机制?
rdb和aof都开启