Redis持久化

Redis的持久化包括全量持久化(快照)和增量持久化(AOF日志)。全量持久化通过子进程利用Copy On Write机制完成,AOF日志记录指令序列,并通过AOF重写进行瘦身。混合持久化结合全量和增量,提升重启效率。
摘要由CSDN通过智能技术生成

业务场景

Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。

持久化分类

Redis的持久化分为全量持久化(快照)和增量持久化(AOF 日志)。全量持久化将内存中的数据直接快照存在硬盘中,增量持久化通过记录内存数据修改的日志来实现。AOF 日志在长期的运行过程中会变的无比庞大,数据库重启时需要加载 AOF 日志进行指令重放,这个时间就会无比漫长。所以需要定期进行 AOF 重写,给 AOF 日志进行瘦身。

全量持久化原理

生成快照需要用到文件IO操作,因此 Redis 会开一个子进程来处理文件IO操作。子进程做数据持久化,它不会修改现有的内存数据结构,它只是对数据结构进行遍历读取,然后序列化写到磁盘中。但是父进程(处理用户请求的工作进程)不一样,它必须持续服务客户端请求,然后对内存数据结构进行不间断的修改。
由于父进程会对内存中的数据进行不断修改,为保证子进程数据持久化的顺利进程,父进程的修改内存操作用到了Copy On Write 机制(写时复制)。当父进程对某段内存修改时,会将该内存数据复制一个副本。子进程只需要对这段内存副本的数据做持久化即可。

AOF原理

AOF 日志存储的是 Redis 服务器的顺序指令序列,AOF 日志只记录对内存进行修改的指令记录。Redis 在长期运行的过程中,AOF 的日志会越变越长。如果实例宕机重启,重放整个 AOF 日志会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值