我是靠谱客的博主 饱满板栗,最近开发中收集的这篇文章主要介绍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的改进
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最后

以上就是饱满板栗为你收集整理的Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDB&AOF混合使用的全部内容,希望文章能够帮你解决Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDB&AOF混合使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部