Redis(三)持久化

2023-10-27

RDB(Redis DataBase)

Redis使用操作系统的多进程 COW(Copy On Write)机制来实现快照持久化。

Redis在持久化时会调用 glibc 的函数fork产生一个子进程,快照持久化完全交给子进程来处理,父进程继续处理客户端请求。

  • 触发条件

    • save满足规则的情况
    • 执行FLUSHALL、FLUSHDB
    • 退出Redis
  • 恢复RDB文件中的数据

    只需要将.rdb文件放在指定的目录,Redis启动时会自动加载并恢复其中数据

    目录存在位置:

    127.0.0.1:6379> config get dir
    1) "dir"
    2) "/usr/local/bin"
    
  • 应用场景:

    • 大规模数据恢复
    • 对数据完整性要求不高
  • 缺点:

    • 每次生成文件时有一定间隔。Redis如果宕机,将会缺失部分数据。
    • 生成.rdb文件时需要fork一个子进程,会有一些内存占用。

AOF(Append Only File)

Redis在收到客户端修改指令后,进行参数校验、逻辑处理,如果没问题,就立即将该指令文本存储到AOF日志中。

通常Redis的主节点不会进行持久化操作,持久化操作主要是从节点进行。

  • AOF重写

    Redis提供了bgrewriteaof指令用于对AOF日志进行瘦身,其原理就是开辟一个子进程对内存进行遍历,转换成一系列Redis的操作指令,序列化到一个新的AOF日志文件中。

  • fsync

    Liunx 的 glibc 提供了fsync(int fd)函数可以将指定文件的内容强制从内核缓存中刷到磁盘。只要Redis进程实时调用fsync函数就可以保证AOF日志不丢失。但是fsync操作是一个磁盘IO操作,非常慢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis(三)持久化 的相关文章

  • 是否可以在 Spring Batch 中结合分区和并行步骤?

    我只是想知道它在 Spring Batch 中可行吗 Step1Step2 流程 gt 流程1 流程2 流程3 Step3 其中每个flow1 gt 划分为 5 个 GridSizeflow2 gt 划分为 5 个 GridSizeflow
  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这

随机推荐

  • scons编译protobuffer脚本代码

    scons编译protobuffer脚本代码 protoc py Google s Protoc builder Example will produce c output files in the src directory protoc
  • Python选基金(爬虫+策略)

    之前买基金都瞎买的 最近突然想可以用python来试试 综合基金类型 持仓 收益率 基金经理多维度综合考虑 看看能不能帮忙选比较优质的基金出来 整体策略 一 数据准备 1 1获得基金经理信息 import requests import t
  • Qt 的 Qss使用

    Qt 的 Qss 是一种用于定义用户界面的样式表语言 它可以用来定义控件的颜色 字体 边框 背景等样式 可以很方便的实现自定义的样式效果 Qss 的基本语法和 CSS 类似 主要是由选择器和样式属性构成 选择器 选择器用来指定要样式化的控件
  • SIP协议&开源SIP服务器搭建和客户端安装

    1 SIP SIP 是一个应用层的控制协议 可以用来建立 修改 和终止多媒体会话 例如Internet电话 SIP在建立和维持终止多媒体会话协议上 支持五个方面 1 用户定位 检查终端用户的位置 用于通讯 2 用户有效性 检查用户参与会话的
  • 如何防止token伪造、篡改、窃取

    Token的伪造 窃取和篡改的安全问题 伪造 forgery 指攻击者伪造一个token 使系统错误地认为这是一个合法的token 从而获得未经授权的访问权限 窃取 theft 指攻击者通过某种手段获取到了一个合法的token 然后利用这个
  • RKE部署高可用Kubernetes集群

    RKE简介 RKE全称Rancher Kubernetes Engine 是一个快速的 多功能的 Kubernetes 安装工具 通过RKE 我们可以快速的安装一个高可用K8S集群 RKE 支持多种操作系统 包括 MacOS Linux 和
  • 抢滩登陆服务器维护,Intel CPU 一家独大市场结束?AMD 成功抢滩登陆-控制器/处理器-与非网...

    曾经 在服务器 CPU 市场 Intel 一家独大 但过去两年 AMD 凭借空前成功的 Zen 核心 以代号为 Naples 的 EPYC 霄龙 处理器强势杀入 从最大的云环境到 AI 应用领域 再到百亿级超级计算中心 AMD EYPC 均
  • el-table合并表头、动态合并列、合并尾部合计

    在有些情况下 我们会有合并表头 合并列 合并尾部合计的需求 这篇文章是为了记录 如何进行合并 方便日后翻阅 效果图 el table合并表头 el table合并列 动态合并 el table合并尾部合计 el table合并表头的实现 这
  • pytorch开源吗?

    pytorch开源吗 PyTorch的前身是Torch 其底层和Torch框架一样 但是使用Python重新写了很多内容 不仅更加灵活 支持动态图 而且提供了Python接口 它是由Torch7团队开发 是一个以Python优先的深度学习框
  • vue-quill-editor 富文本编辑器上传视频

    vue quill editor 富文本编辑器上传视频 插入视频 设置工具栏中文标题 修改视频 标签为
  • 苹果发布全球首款5nm芯片A14!性能提升40%,新iPad Air率先搭载

    边策 贾浩楠 萧箫 杨净 发自 凹非寺 量子位 报道 公众号 QbitAI 也是罕见 苹果的新品发布会 新一代iPhone没亮相 倒是把最新最强的AI芯片发布了 没错 今天苹果没有发布iPhone 12 但是A14芯片还是意外亮相 集成11
  • 基于小程序+C#制作一个考试答题小程序

    基于小程序和C 语言 你可以使用微信小程序开发工具和Visual Studio进行开发 以下是开发考试答题小程序的基本步骤 需求分析和设计 首先 你需要明确考试答题小程序的功能和界面设计 例如 考试题目的类型 数量和难度 用户的身份验证 答
  • 10、Python3 实战之ORM

    10 Python3 实战之ORM 1 全局变量与局部变量 全局变量与局部变量两者的本质区别就是在于作用域用通俗的话来理解的话 全局变量是在整个py文件中声明 全局范围内都可以访问 局部变量是在某个函数中声明的 只能在该函数中调用它 不能在
  • 修改element里form的样式

    1 改变表单中的某项label的样式 在assets文件夹下新建myform css文件 itemlabel el form item label font size 22px 在main js全局引入myform css文件 导入myfo
  • redis集群配置(Mac)

    主要解决在Mac进行redis的集群安装及配置 包括对集群 节点 槽 slot 键的基本命令使用 以及常见错误 版本 redis 5 3 系统 mac 10 前期准备 目录结构 mkdir cluster test cd cluster t
  • Failed to launch emulator 和 Failed to install the app解决方法

    1 按照react native官网配置好android开发环境 创建一个新项目 然后在vscode使用npm start和npm run android 运行打包的时候 报了上面两个错误 这是在创建好Device Manager中模拟手机
  • 互联网摸鱼日报(2023-03-06)

    互联网摸鱼日报 2023 03 06 InfoQ 热门话题 Snap首席信息安全官 我给软件供应链风险打 9 9 分 满分 10 分 技术深度解析 H 266 VVC 标准之量化技术 字节新一代解码器 BVC 帮助 H 266 VVC 标准
  • CMake编译opencv4.6

    openCV系列文章目录 文章目录 openCV系列文章目录 前言 一 准备工作 二 使用步骤 1 使用CMake编译openCV 总结 前言 最近在项目中遇到图片处理 一拍脑袋就想到大名鼎鼎的opencv 一 准备工作 1 openCV官
  • STM32中实现OLED多级菜单(支持修改参数)

    STM32中实现OLED多级菜单 目录 STM32中实现OLED多级菜单 一 完整工程源码下载 二 硬件连接 1 OLED12864 2 按键 3 蜂鸣器 三 效果展示 1 图片效果 2 视频效果 四 核心代码 1 gui h文件 2 gu
  • Redis(三)持久化

    RDB Redis DataBase Redis使用操作系统的多进程 COW Copy On Write 机制来实现快照持久化 Redis在持久化时会调用 glibc 的函数fork产生一个子进程 快照持久化完全交给子进程来处理 父进程继续