标签:aof save 数据存储 ase 带来 基于 资源 百分比 tab
上一篇主要描述了RDB。这一篇将描述AOF。
简单回顾一下RDB存储的弊端:
解决思路:
这就是AOF。
一、AOF基本概念
AOF持久化:append only file ,以独立日志的方式记录每次写命令,重启时再重新执行AOF中的命令达到恢复数据的目的。与RDB相比可以简单描述为改记录数据为记录数据产生的过程。AOF主要解决了数据持久化的实时性问题。目前是Redis持久化的主流方式。
二、AOF写数据的过程
2.1 AOF原理
当有操作指令过来的时候,redis将命令放在命令刷新缓存区,达到一定量的时候,再将命令写入到.aof的文件中去。
2.2 AOF读写数据的策略
问题:那么缓存区达到什么程度,会触发写文件呢?一次写多少呢?
解答:AOF写数据的三种策略
2.2.1 AOF功能开启
2.3 AOF重写策略
2.3.1 基本介绍
比方说连续执行如下指令:在恢复的时候,还要执行这样的6条指令,显得没有任何意义。因为像前面三条set,只有最后一个有意义,那么就需要将指令进行合并。
也就是说,随着命令不断写入AOF,文件会越来越大,为了解决这个问题,Redis引入了AOF重写机制压缩文件体积。
AOF重写是将redis进程内的数据转换为写命令同步到新AOF文件的过程,也就是将同一个数据的若干条命令执行结果转换为最终结果数据对应指令进行记录的过程。
2.3.2 AOF重写的作用
2.3.3 AOF重写规则
2.3.4 AOF重写方式
2.3.4.1 手动重写
指令:bgrewriteaof
原理:类似bgsave来看。
2.3.4.2 自动重写
自动重写触发条件设置
自动触发的条件:
这两个参考比对值我们可以通过info命令查看。
2.3.5 AOF重写过程
相对于前面我们说的bgrewriteaof,在重写的时候会有一个重写缓存区,重写后的文件会替换掉原来的老的aof文件。
三、RDB和AOF对比
持久化方式 | RDB | AOF |
占用存储空间 | 小(数据级:压缩) | 大(指令级:重写) |
存储速度 | 慢 | 快 |
恢复速度 | 快 | 慢 |
数据安全性 | 会数据丢失 | 依据策略而定 |
资源消耗 | 高/重量级 | 低/轻量级 |
启动优先级 | 低 | 高 |
四、RDB和AOF的选择
这一篇就到这里,下一篇写redis的事务。
标签:aof save 数据存储 ase 带来 基于 资源 百分比 tab
原文地址:https://www.cnblogs.com/leijisong/p/13961728.html