一文带你了解Redis持久化机制

Redis持久化

redis持久化提供了两种机制,一种时快照RDB和AOF写日志。

RBD快照

快照是一次全量备份。快照是以二进制序列化方式来存储的。占用空间比较小,恢复比较快。

Redis使用操作系统的CopyOnWrite来实现快照持久化。

fork(多线程)

redis持久化调用glic函数fork出一个子进程,持久化就交给子进程来完成。子进程刚产生的时候和父进程共享内存的代码块和数据段。
此时父进程正常对外提供服务,当有指令过来修改就会使用cow进行数据段页面分离、子进程页面没有变化,保持持久化瞬间的数据。

AOF持久化

aof是记录每条记录,先将指令存储aof在进行执行。这样保证机器宕机数据的可恢复。

aof重写

aof长时间记录日志会造成文件很大,占用空间,恢复较慢,aof开启一个子进程进行定期文件瘦身。此期间发生的修改记录再以增量的方式来增加到aof文件。

aof重写就是将指令压缩,如set a xx ,set a bb,set a cc
只记录最后一次修改set a cc就可以完成压缩文件。

运维情况

aof如果每次进行修改都需要记录的话会很占用资源。可以设置每1s进行记录一次aof文件,但是这样可能导致数据的丢失。实际生产环境中不在主节点上设置aof,在从节点上配置aof记录日志。

Redis4.0 混合持久化

redis在恢复数据的时候,先使用rdb文件进行恢复,这样速度比较快,然后使用aof文件对rdb产生时间以后的记录使用aof增量的方式来进行重放。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值