redis系列3——持久化

Redis的持久化包括RDB(快照)和AOF(日志)两种机制,用于防止数据丢失。RDB适合数据备份和全量复制,但可能丢失实时数据;AOF则能实时持久化,通过追加命令日志实现数据恢复,但文件较大。此外,Redis 4.0引入混合持久化,在AOF重写时结合RDB,提高数据恢复效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Redis支持RDB(快照)和AOF(日志)两种持久化机制,持久化能有效的避免因进程退出造成的数据丢失的问题,重启后利用持久化文件做数据恢复。

一、RDB

        RDB是把当前进程数据生成快照保存到硬盘的过程。利用子进程做数据持久化,不会修改现有的内存数据结构,只是序列化到磁盘中。父进程需要持续服务客户端的请求,对内存数据结构进行不间断的更改。触发RDB持久化过程分为手动和自动触发两种。

手动触发:使用save(阻塞当前redis服务器线程,一直到RDB完成,内存大会造成长时间的阻塞)命令和bgsave(使用fork操作创建子进程,RDB持久化过程有子进程负责,完成后自动结束。阻塞发生在fork阶段,耗时短)命令。bgsave命令是save命令的一个优化,save命令目前已经被废弃了。

自动触发:使用save命令 ,如save m n,标识m秒内数据集存在n次修改触发一次bgsave。从节点执行全量复制操作,主节点自动执行bgsave生成RDB文件给从节点。

bgsave工作流程图:

操作流程:

  1. 执行bgsave命令,父进程需要校验当前是否有正在执行的子进程(比如RDB、AOF),如果存在bgsave直接返回。
  2. 不存在正在执行的子进程,父进程执行fork操作创建子进程,fock
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值