彻底理解Redis持久化( 二 )
2. 旧AOF文件含有的无效命令 del k1, set a 1, set a 2 。重写使用进程内的数据直接生成 , aof文件就保留最新的命令集合 。
3. 多条命令可以合并为一个命令 , 为了防止单个命令过大造成客户端缓冲区溢出 , 对于list,set,hash,zset 等类型的操作 , 以64个元素为界拆分为多条 。
触发机制

文章插图
1. 手动触发 执行bgrewriteaof命令 。
2. 根据配置自动触发
auto-aof-rewrite-min-size 表示运行AOF重写是文件最小的大小 。默认64M , 小于64M就会不自动重写了 。
auto-aof-rewrite-percentage 表示( aof_current_size - aof_base_size ) / aof_base_size 的比值 。
aof文件重写之后当前文件大小增长多少就触发重写自动触发时机 :
aof_current_size > auto-aof-rewrite-min-size三 RDB VS AOF 对比具体使用哪种持久化方式 , 下面是来自官方的建议:
&&
( aof_current_size - aof_base_size ) / aof_base_size >= auto-aof-rewrite-percent
age
通常 , 如果你要想提供很高的数据保障性 , 那么建议你同时使用两种持久化方式 。如果你可以接受灾难带来的几分钟的数据丢失 , 那么你可以仅使用RDB 。很多用户仅使用了AOF , 但是我们建议 , 既然RDB可以时不时的给数据做个完整的快照 , 并且提供更快的重启 , 所以最好还是也使用RDB 。
生产上的实例大多不会是单点 , 而是主从 , 也有利用slave作为持久化方式 , 同时满足HA的需求 。读者朋友可以分享一下各自遇到的和 redis 持久化相关的问题 。
推荐阅读
- 彻底关闭ios更新 总是提示现有新的iOS更新可用
- 微软|Win11 2022正式版曝光:桌面右下角清爽了!所有三方图标彻底消失
- IPv6系列-彻底弄明白有状态与无状态配置IPv6地址
- redis各类型数据结构和底层实现源码分析
- 利用openresty+lua+redis 实现封杀频繁恶意访问IP地址
- 男人看女人有那么简单吗 心理解读5心思
- 我对网络IO的理解
- Nginx高级篇:从原理到实战,彻底搞懂Nginx
- Redis消息队列发展历程
- 4步教你彻底删除C盘顽固文件,电脑一下子多出10个G,学会了吗