redis持久化机制

Redis持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失;

  1. 快照持久化RDB(默认)适用于数据集较大、对数据完整性要求不是特别高的场景。

RDB 持久化是将数据集快照保存到磁盘上的一个二进制文件中。这个文件包含了 Redis 在某个时间点上的所有数据。缺点是因为快照有数据丢失风险,不适用于实时数据需求,RDB 持久化需要按照一定的时间间隔或修改次数来触发持久化操作。

1.Redis 主进程会 fork 出一个子进程,由子进程负责执行实际的持久化操作,而主进程继续处理客户端请求。 性能高效

2.子进程将当前内存中的数据集快照写入一个临时文件中。空间效率高,占用空间小,能快速恢复

3.当持久化操作完成后,Redis 使用原子操作将临时文件替换为持久化文件,这个过程是非常快速的。

4.Redis 完成持久化后,可以选择停止服务或者继续处理客户端请求。

当一个进程调用 fork 时,操作系统会复制父进程的所有内存、文件描述符和其他资源到子进程中,使得子进程可以从父进程的状态开始执行。子进程是父进程的副本,它在独立的内存空间中运行,并拥有自己的唯一的进程 ID(PID)。fork 操作的主要优势在于它是一个非常高效的操作,因为它使用了写时复制(copy-on-write)技术,即在子进程修改数据之前,与父进程共享相同的内存页。这样可以减少内存的开销,提高性能。

(2)追加持久化AOF   适用于对数据完整性要求非常高的场景

以日志形式记录每一次的写入和删除操作,策略有每秒同步、每次操作同步、不同步,优点是数据完整性高,可以实时持久化,灾难恢复,缺点是性能低,开销大,恢复时间长

1.Redis 将每个写命令追加到 AOF 文件的末尾,以此记录所有数据集的修改操作。

2.可以通过配置项来控制 AOF 文件的同步策略。可以选择每个写命令都立即同步到磁盘(fsync),或者将多个写命令缓存起来,定期同步到磁盘。

3.当 Redis 重启时,它会读取 AOF 文件中的命令来重建数据集。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值