Redis的两种持久化方式对比

1.RDB(redis database)

RDB是Redis默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入次盘中,即在指定目录生成一个dump.rdb文件。Redis重启会通过加载dump.rdb文件恢复数据。

核心配置

#redis.conf
# save ""
save 900 1
save 300 10
save 60 10000
#解说:save <指定时间间隔> <执行指定次数更新操作>,如:先检查60秒内是否有10000个更改,有则save,再检查300秒是否有10个更改,有则save,最后检查900秒是否有1个更改,有则save..
dbfilename dump.rdb //本地数据库名
dir ./  //本地数据库存放目录
rdbcompression yes //开启数据压缩

rdb优点:
1 适合大规模的数据恢复。
2 如果业务对数据完整性和一致性要求不高,RDB是很好的选择。
缺点:
1 数据的完整性和一致性不高,因为RDB可能在最后一次备份时宕机了。
2 备份时占用内存

2.AOF(append only file)

默认不开启,采用日志的形式记录每个写操作,并追加到文件中,redis重启会根据日志文件内容将写指令从前到后执行一次完成数据恢复。

核心配置

#redis.conf
appendonly yes //开启aof
appendfilename "appendonly.aof"
appendfsync everysec //always,everysec,no
#always 每次数据变化立即写入磁盘
#everysec 每秒写入磁盘
#no 不同步
auto-aof-rewrite-percentage 100%  //与上次aof文件大小对比,超过上次100%时候,触发bgrewrite
auto-aof-rewrite-min-size 512M //指定触发rewrite的aof文件大小
#若aof文件小于该值,即使当前文件的增量比例达到auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite

Redis 针对 AOF文件大的问题,提供重写的瘦身机制。

你可能感兴趣的:(Redis的两种持久化方式对比)