今天给大家讲解下RDB和AOF的配置。
redis的配置文件默认是redis.conf,如果你修改过就找到你修改的文件。
1、RDB配置
save 60 1000
表示每隔60秒,如果有超过1000个key发生了变更,那么就生成一个新的dump.rdb文件,
也可以手动调用save或者bgsave同步,同步或者异步执行rdb快照生成。
save可以配置多个,每到一个时间点,就会检查数据变更是否满足条件,如果满足了,就会生成一个新的dump.rdb文件
2、RDB工作流程
(1)、redis根据配置自己去尝试生成rdb文件;
(2)、fork一个子进程出来;
(3)、子进程尝试将数据dump到临时的rdb快照文件中;
(4)、完成rdb快照文件的生成之后,就替换之前的旧的快照文件;
3、AOF的配置
appendonly yes
默认是关闭的;
appendfsync always
每写入一条数据,立即将这个数据的写日志fsync到磁盘中,性能非常低,吞吐量很低;
appendfsync everysec
每秒将os cache中的数据fsync到磁盘,性能很高,生产环境经常使用这个配置;
appendfsync no
redis数据写入os cache就不管了,os自己会时不时有自己的策略将数据刷入磁盘中,这个就不可控了;
rewrite相关配置
auto-aof-rewrite-percentage 100
rewrite文件大小,跟上一次rewrite的文件大小进行比较,如果超过这个占比,就进行rewrite
auto-aof-rewrite-min-size 64mb
最小rewrite文件大小
举例说明:
如果上次rewrite的时候aof文件大小是 100mb;然后接着在100mb继续写AOF日志,如果发现增长的比例,超过了之前的100%,200mb,就可能会去触发一次rewrite
但是此时还要去跟min-size=64mb去比较,200mb>64mb,才会去触发rewrite
4、AOF破损文件修复
用redis-check-aof --fix 命令来修复

注意:本文归作者所有,未经作者允许,不得转载