redis的aof方式持久化

来源:互联网 发布:大数据分析报告案例 编辑:程序博客网 时间:2024/04/30 22:53
Redis提供两种持久化方式,RDB和AOF;与RDB不同,AOF可以完整的记录整个数据库,而不像RDB只是数据库某一时刻的快照; 
那么AOF模式为什么可以完整的记录整个数据库呢? 

原理:在AOF模式下,Redis会把执行过的每一条更新命令记录下来,保存到AOF文件中;当Redis需要恢复数据库数据时,只需要从之前保存的AOF文件中依次读取命令,执行即可,如果aof和rdb同时存在,redis优先使用aof。

aof配置文件:

appendonly yes  是否打开aof日志功能

appendfsync always   每一个命令都立刻同步到aof,安全但是速度慢
appendfsync everysec  折衷方案每秒一次,一般选用这种。
appendfsync no    交给操作系统,由操作系统判断缓冲区大小,同意写入aof中,频率低速度快。

no-appendfsync-on-rewrite yes     正在导出rdb文件,是否要停止aof

auto-aof-rewrite-percentage 100  aof文件比起上次重写时的大小,增长率是百分之百时重写。

auto-aof-rewrite-min-size 64mb   至少超过64m重写。


配置如上以后,启动redis,会发现在当前目录下面会多出一个aof文件 



设置键值对



然后查看aof文件内容,会发现多次同时设置一个键值对,每次都会在aof文件中有记录


但是上述会发现一个问题,如果多次操作同一个键值对,每次都会记录实在aof文件中,导致aof文件过大,其实只需要记录最后一次操作记录在aof

文件即可.这会用到aof重写,导致重写的aof里面操作命令减少。

bgrewriteaof






0 0
原创粉丝点击