redis持久化RDB和AOF的区别;以及AOF的重写

概述

redis有两种持久化方式:
redis默认采用的RDB方式

RDB(Redis DataBase):在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。

AOF(Append Only File):用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

综上简述:
RDB就是整个redis db打一个内存快照,即整库备份。
AOF就是使用文件不断的记录写操作的日志。

AOF的三种方式

  • Always(同步写回): 命令写入 AOF缓冲区后调用系统 fsync操作同步到AOF文件, fsync完成后线程返回。(因为一直在同步写,性能较差)
  • Everysec(每秒写回): 命令写人 AOF缓冲区后调用系统 write操作, write完成后线程返回。fsync同步文件操作由专门线程每秒调用一次。(默认模式,性能适中)
  • No(操作系统自动写回): 命令写入 AOF缓冲区后调用系统 write操作,不对AOF文件做 fsync同步,同步硬盘操作由操作系统负责,通常同步周期最长30秒。(性能高,但是安全性不佳)

那么AOF经过不断的追加会带来一个问题,就是占据的磁盘空间越来越大。因此redis还有一个AOF重写机制,将AOF的文件大小进行精简。

AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发,从redis内存中读取数据,重新生成一份新的AOF文件,来替换原先庞大的AOF文件。

这里的“一倍”和“64M” 可以通过配置文件修改。

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值