IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 深入理解Redis持久化机制——COW -> 正文阅读

[大数据]深入理解Redis持久化机制——COW

RDB

普通的八股不多说,说说使用bgsave后快照到底如何实现持久化并且还能继续提供服务。

bgsave会调用fork出一个子进程,那子进程要如何获取父进程的数据?

其实就是进程通信中的内存映射,将子进程的逻辑内存与父进程的逻辑内存映射到同一块物理内存。

但是如果父进程更改了数据怎么办?

在父进程修改的内存页(linux页4kb)内核才会将要更改的内存页实际拷贝到子进程里,他把拷贝延迟到实际需要拷贝的时候才真正进行拷贝。相对于没有COW时大大减少了内存的实际占用以及拷贝带来的性能消耗。

COW原理

fork()之后(fork()的实际开销就是复制父进程的页表以及给子进程创建一个进程描述符),kernel把父进程中所有的内存页的权限都设为read-only,然后子进程的地址空间指向父进程。当父子进程都只读内存时,相安无事。当其中某个进程写内存时,CPU硬件检测到内存页是read-only的,于是触发页异常中断(page-fault),陷入kernel的一个中断例程。中断例程中,kernel就会把触发的异常的页复制一份,于是父子进程各自持有独立的一份。

CopyOnWriteArrayList

在Java中也有类似的技术,不过是线程间的,线程安全的CopyOnWriteArrayList。底层通过复制数组的方式来实现,数据读取时直接读取,不需要锁,数据写入时,需要锁,且对副本进行操作,这样比直接对读写加锁避免了读的阻塞。同时为了保证可见性使用了volatile修饰数组。在完成数组复制修改操作后更新之前的数组。只有写写阻塞,通过ReentrentLock对数组大小变更加锁实现。

AOF

把每一个写请求记录日志,可以设置always、everysec、no

AOF重写

每条写都记录占用体积很大并且恢复时间也长,redis提供了日志重写功能,可以压缩命令。

创建一个新的 AOF 文件来代替原有的 AOF 文件, 新 AOF 文件和原有 AOF 文件保存的数据库状态完全一样, 但新 AOF 文件的体积小于等于原有 AOF 文件的体积。

生成期间将命令双写到原本AOF文件与AOF缓存文件中,可以保证原有AOF文件在写时命令也记录,生成的新AOF缓存文件命令也完整。

RDB+AOF

Redis4.0后使用混合模式,生成RDB后重新开始记录AOF,结合了RDB恢复快但备份久,AOF恢复慢但备份快的优点。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:14:33  更:2022-03-17 22:18:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:25:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码