Redis的持久化机制RDB与AOF

embedded/2024/11/9 16:37:44/

RDB

RDB 是将 Redis 的内存中的数据定期保存到磁盘上,以防止数据在 Redis 进程异常退出或服务器断电等情况下丢失。

RDB 的优点是:快照文件小、恢复速度快,适合做备份和灾难恢复。
RDB 的缺点是:定期更新可能会丢数据(当我修改数据后,准备要通过快照文件跟新数据,此时Redis突然宕机了,那么从上一次更新数据之后的数据就丢失了)

AOF

AOF 是将 Redis 的所有写操作追加到 AOF 文件(Append Only File)的末尾,从而记录了 Redis 服务器运行期间所有修改操作的详细记录。当 Redis 重新启动时,可以通过执行 AOF 文件中保存的写操作来恢复数据。
但是如果 Redis 刚刚执行完一个写命令,还没来得及写 AOF 文件就宕机了,那么这个命令和相应的数据就会丢失了。但是他也比 RDB 要更加靠谱一些。

AOF 的优点是:可以实现更高的数据可靠性、支持更细粒度的数据恢复,适合做数据存档和数据                            备份。
AOF 的缺点是:文件大占用空间更多,每次写操作都需要写磁盘导致负载较高

两者对比:

 混合持久化

混合持久化的情况下,AOF 重写时会把 Redis 的持久化数据,以 RDB 的格式写入到 AOF 文件的开头,之后的数据再以 AOF 的格式化追加的文件的末尾。

开启混合模式的参数:aof-use-rdb-preamble

混合持久化结合了 RDB 和 AOF 持久化的优点,开头为 RDB 的格式,使得 Redis 可以更快的启动,同时结合 AOF 的优点,有减低了大量数据丢失的风险。
但是,在 AOF 文件中添加了 RDB 格式的内容,使得 AOF 文件的可读性变得很差


http://www.ppmy.cn/embedded/109455.html

相关文章

服务器数据恢复—Raid磁盘阵列故障类型和常见故障原因

出于尽可能避免数据灾难的设计初衷,RAID解决了3个问题:容量问题、IO性能问题、存储安全(冗余)问题。从数据恢复的角度讨论RAID的存储安全问题。 常见的起到存储安全作用的RAID方案有RAID1、RAID5及其变形。基本设计思路是相似的:当部分数据异…

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以…

Flutter海外商城类APP常用的第三方库总汇

Flutter海外商城类APP常用的第三方库总汇 随着移动应用市场的不断扩展,海外商城类APP的开发需求日益增长。Flutter作为一个流行的跨平台开发框架,为开发者提供了快速构建高性能、高保真的移动应用的能力。在开发海外商城类APP时,选择合适的第…

《OpenCV计算机视觉》—— 对图片进行旋转的两种方法

文章目录 一、用numpy库中的方法对图片进行旋转二、用OpenCV库中的方法对图片进行旋转 一、用numpy库中的方法对图片进行旋转 numpy库中的 np.rot90 函数方法可以对图片进行旋转 代码实现如下: import cv2 import numpy as np# 读取图片 img cv2.imread(wechat.jp…

GitHub图床

GitHub图床 文章目录 GitHub图床图床介绍Github访问GitHub手动修改hostsgithub520 加速器创建账户创建仓库创建token PicGoTypora 图床介绍 图床 存放图片的地方 为什么设置图床呢 在我认识图床之前, 有一个问题 [^放在typora上面的图片, 其实是一个链接, 并且将图片存放在本地…

漫谈设计模式 [5]:建造者模式

引导性开场 菜鸟:老鸟,我最近在写一个项目,发现很多对象初始化的代码特别复杂,感觉乱糟糟的。有没有什么好的方法能帮我简化这些代码? 老鸟:嗯,你提到的这个问题其实很常见。你有没有听说过设…

LeetCode之区间

228. 汇总区间 class Solution {public List<String> summaryRanges(int[] nums) {// 输入&#xff1a;nums [0,1,2,4,5,7] 输出&#xff1a;["0->2","4->5","7"]// 创建一个字符串列表&#xff0c;用于存储结果List<String>…

docker和docker-compose安装脚本

1.docker安装脚本 1.1创建脚本文件 touch install_docker.sh chmod 777 install_docker.sh cat > install_docker.sh << EOF #!/bin/bash# 删除现有的 Docker echo -e " 1. 删除现有 Docker \n\n" sudo yum remove -y docker \docker-client \docker-clie…