Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDB&AOF混合使用

补充一个知识

缓存:数据可以丢,保证速度。
数据库:数据是绝对不能丢的,保证速度+持久性,内存中的数据是掉电易失的。

存储层:

  • 快照/副本
  • 日志文件

$$优先级高于管道
在这里插入图片描述

fork()

fork是系统调用,copy on write是内核机制。
在这里插入图片描述

写时复制
在fork子进程的时候,只拷贝指针,并不发生内存的复制。
只有当其中的某一个进程试图对该区域进行写操作时,内核就会在物理存储器中为子进程开辟一个新的物理页面,将需要写的区域将父进程的内容复制一份给子进程,然后对新的物理页面进行写操作。
这时就是实现了对不同进程的操作而不会产生影响其他的进程,同时也节省了很多的物理存储器。
并且根据经验来看,不可能父子进程将所有数据都改一遍。下图redis也用了这个机制,而且redis的子进程不会去修改数据:

  • 可以用ref记录被引用的数量
    linux

redis 子进程用来RDB持久化落盘,父进程用来提供服务:
在这里插入图片描述

RDB:快照,副本

时点性,是每隔一段时间存一下

  • 阻塞,redis不对外提供服务

在这里插入图片描述

在这里插入图片描述

AOF:追加日志 append only file

redis的写操作记录到文件中,类似于mysql的binlog

  • 非阻塞,redis继续对外提供服务
  • 同时数据能够落地
  • RDB和AOF可以同时开启。如果开启了AOF,重启服务器的时候,只会用AOF恢复。
  • 4.0版本之后,AOF中包含RDB全量,增加记录新的写操作。

RDB的改进
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值