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持久化 -> 正文阅读

[大数据]Redis持久化

Redis持久化主要有RDB持久化AOF持久化,RDB持久化是通过保存数据库中的键值对来记录数据库状态不同,而AOF持久化则是通过保存Redis服务器所执行的写命令来记录数据库状态。

RDB持久化

介绍

RDB持久化所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据状态。无论发生任何事情,只要RDB文件还存在,Redis服务器就能用它还原数据库的状态,Redis是默认开启RDB持久化服务。

Redis中有SAVEBGSAVE两个命令来生成RDB文件。其中SAVE命令会阻塞服务器进程,一直到RDB文件创建完毕;BGSAVE则与众不同,该命令会生成一个子进程,然后由子进程负责生成RDB文件,而服务器进程继续执行各种命令请求。

此外,RDB文件的载入与其生成不同,它的载入工作是在服务器启动时自动执行的,Redis并没有专门的载入命令。只要Redis服务器在启动时检测到RDB文件的存在,它就会自行载入RDB文件,无需手动载入。

在RDB持久化过程中,主进程还能继续修改数据吗?
通过问题可知,我们讨论的是通过BGSAVE命令来执行RDB持久化命令的。由于BGSAVE命令是通过创建子进程来执行RDB持久化,因此在RDB持久化过程中,主进程是可以继续修改数据的。具体如何做到,则取决于写时复制技术(Copy-On-Write, COW)

由于RDB持久化进程是主进程的子进程,因此在创建RDB持久化进程时会发生子进程复制主进程(父进程)的页表,但是此时页表还是指向同一块物理内存。只有在发生修改内存数据时,屋里内存才会被复制一份。也即当主进程(父进程)对这些共享数据只是读操作时,主进程(父进程)与RDB持久化进程互不影响。但是如果主进程(父进程)在对这些共享数据进行写操作时,就会发生写时复制,于是这块数据的物理内存就会被复制一份,然后主线程在这个数据副本进行写操作。同时RDB持久化进程继续把原来的数据写入RDB文件中。

AOF持久化

介绍

AOF持久化不同于RDB持久化,它是通过保存Redis’服务器所执行的写命令来记录数据库状态的。在Redis中AOF持久化是默认不开启的,需要修改Redis的配置文件相关参数。

在AOF持久化中,Redis是先执行写操作命令之后,再将该命令记录到AOF日志中,主要是因为:
1、可以减小额外的开销
先将操作命令追加到AOF日志可能存在语法存在问题而执行失败;
2、不会阻塞写操作命令的执行
只有当写操作执行完毕后才能将写操作追加到AOF日志;

注意
AOF持久化也是存在风险的,它可能存在数据丢失以及阻塞下一个命令的现象(AOF持久化与执行命令都存在与主进程,而不同于RDB持久化还存在子进程的概念)。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:59:50  更:2022-07-04 23:03:14 
 
开发: 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年5日历 -2024/5/20 0:02:50-

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