Redis数据备份RDB和AOF

redis持久化方案 RDB

RDB也叫做redis数据快照,也就是把redis的数据写入磁盘进行持久化,可以通过配置redis的config文件,指定多少秒存内存了多少个key则进行RDB,也可以通过save或bgsave命令进行手持久化,save是占用redis主进程,bgsave是开启一个子进程进行持久化,当redis正常停机也会进行一次RDB。bgsave执行流程:1.子进程fork主进程复制页表共享内存 2.子进程读取内存数据写入新的RDB文件并覆盖原来的RDB文件 细节:子进程和主进程之间数据共享是通过页表的复制实现的,主进程的页表映射为物理内存,子进程通过复制得到的页表也同样映射到相同的物理内存。此时,物理内存会被标记为read-only,这是如果主进程要进行写操作,就会复制一份原来的数据出来,并对复制出来的数据进行修改,极端形况下,如果子进程RDB操作耗时过多,这时如果所有的数据都要进行写操作,就会内存翻倍可能会内存溢出。如果在未RDB操作时有数据写入且redis宕机就会造成数据丢失,如果把RDB时间间隔改小则会造成如果你的数据过大RDB时间就会很长,高频率RDB大大影响性能,同时RBD时间会小于RDB间隔时间就会造成一些问题。

 

redis持久化方案 AOF

redis每执行一次写操作都会把命令记录在AOF文件中

下面是三种AOF模式的比较

 因为AOF是记录写操作的命令,所以可能会存在记录对一个key重复多次操作的命令,但事实上只有最后一次命令是有效的,所以可以通过bgrerwirteaof来实现对多余命令的压缩减少内存消耗

RDB和AOF的比较

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值