当前位置: 首页 > news >正文

Redis的持久化的策略

Redis的持久化的策略

官方文档说明

  • AOF持久化策略
  • RDB持久化的策略

AOF持久化策略

AOF持久性记录服务器接收到的每个写操作,然后,可以在服务器启动时再次重播这些操作,重建原始数据集,使用与Redis协议本身相同的格式记录命令。

appendonly yes #默认是不开启的,我们需要手动配置成no来进行开启# The name of the append only file (default: "appendonly.aof")
appendfilename "appendonly.aof"

AOF 的执行流程

AOF策略的特点

  • 同时使用这两种持久化方式,redis 默认优先加载 aof 文件(aof 数据最完整);

  • AOF 文件会在操作过程中变得越来越大

    • 比如,如果你做一百次加法计算,最后你只会在数据库里面得到最终的数值,但是在你的 AOF 里面会存在 100 次记录,其中 99 条记录对最终的结果是无用的;

    • Redis 支持在不影响服务的前提下在后台子进程(主进程可以继续处理命令请求,避免阻塞主进程

      )重构 AOF文件,让文件得以整理变小;

    • 后台重写的触发条件

      //执行 AOF 重写时,当前 AOF 大小(aof_current_size)和上一次重写时 AOF 大小(aof_base_size)的比值
      auto-aof-rewrite-percentage 100 //AOF文件大于64M
      auto-aof-rewrite-min-size 64mb  //或者用户手动通过调用 bgrewriteaof手动触发
      

AOF 文件存储格式

  • redis-cli 下执行写命令
127.0.0.1:13>set name "kevin"
"OK"
127.0.0.1:13>del name
  • 对应aop文件中记录的内容,就是对应的写操作命令,采用的RESP协议:Redis 的序列化协议。
*2
$6
SELECT
$2
13
*3
$3
set
$4
name
$5
kevin
*2
$3
DEL
$4
name

RDB持久化的策略

RDB 持久化(也称作快照持久化)是指将内存中的数据生成快照保存到磁盘里面,默认文件名dump.rdb

# The filename where to dump the DB
dbfilename dump.rdb

Redis 还可以通过配置文件的选项来实现每隔一段时间自动执行一次 bgsave 命令,虽然选项名称时save,实际上执行的是bgsave命令。自动执行策略可以配置多个,只要满足上面任意一个条件就会执行bgsave。


save 900 1     #900 秒之内,对数据库进行了至少 1 次修改;
save 300 10    #300 秒之内,对数据库进行了至少 10 次修改
save 60 10000  #60 秒之内,对数据库进行了至少 10000 次修改

RDB执行流程

执行了 save 命令,就会在主线程生成 RDB 文件,由于和执行操作命令在同一个线程,所以会阻塞主线程。

bgsave 是fork一个子线程进行处理,所以不会阻塞主线程。

RDB特点

  • 由于存储的是数据快照文件,恢复数据很方便,也比较快
  • 会丢失最后一次快照以后更改的数据

相关文章:

Redis的持久化的策略

Redis的持久化的策略 官方文档说明 AOF持久化策略RDB持久化的策略 AOF持久化策略 AOF持久性记录服务器接收到的每个写操作,然后,可以在服务器启动时再次重播这些操作,重建原始数据集,使用与Redis协议本身相同的格式记录命令。…...

【八】Zookeeper3.7.1集成Hadoop3.3.4集群安装

文章目录 1.基本原理2.下载并解压ZooKeeper3.配置环境变量4.配置ZooKeeper5.创建数据目录并初始化myid6.启动ZooKeeper7.配置ZooKeeper集成到Hadoop8.重启Hadoop9.ZooKeeper状态检查 1.基本原理 ZooKeeper 是一个分布式协调服务,用于分布式系统中管理配置信息、命名…...

【C/C++笔记】:易错难点3 (二叉树)

选择题 🌈eg1 一棵有15个节点的完全二叉树和一棵同样有15个节点的普通二叉树,叶子节点的个数最多会差多少个()? 正确答案: C A. 3 B. 5 C. 7 D. 9 解析:普通二叉树的叶子节…...

一篇文章解决Webpack

一:什么是webpack webpack是一个用于现代JavaScript应用程序的静态模块打包工具。本质是一个软件包, 静态模块包括以下:html、css、js、图片等固定内容的文件 二:webpack工作原理 当 webpack 处理应用程序时,它会在内…...

速盾:cdn如何解析php文件中的图片?

CDN(Content Delivery Network)是一种通过分布在全球各地的服务器来加速网络内容传输的技术。CDN通过将内容缓存在离用户最近的服务器上,提供更快的访问速度和更好的用户体验。在解析PHP文件中的图片时,CDN可以起到以下几个方面的…...

如何快速实现MODBUS TCP转Profinet——泗博网关EPN-330

泗博网关EPN-330可作为PROFINET从站,支持与西门子S7-200 SMART/300/400/1200/1500全系列PLC以及具有PROFINET主站的系统无缝对接,而Modbus TCP端,可以与Modbus TCP从站设备、主站PLC、DCS系统以及组态软件等进行数据交互。 通过EPN-330&…...

什么是实时数据仓库?它有哪些不可替代之处?

【实时数据仓库】可以分开来理解: ✅【实时数据】:即能够快速处理数据,且几乎无延迟的提供最新的数据的能力。 ✅【仓库管理】:可以理解为对仓库的库存控制、对仓库的存储优化以及协调物流。 那么实时数据仓库就是:…...

《Ubuntu22.04环境下的ROS2学习笔记1》

一、在ROS2环境下创建工作空间 ROS2相比ROS1来说工作空间的创建有较大的不同,同时工作空间中的四个目录被更换为src(存放源码) , build(存放编译的中间文件) , install(存放可执行文件) , log(日志)。同时命令行也有些许变化&…...

Jupyter nbextensions安装与使用

Jupyter nbextensions的安装与使用主要包括以下几个步骤: 一、安装步骤 确保已安装Jupyter Notebook 如果尚未安装Jupyter Notebook,可以使用pip命令进行安装: pip install jupyter 安装nbextensions 使用pip命令安装nbextensions包&#x…...

java.nio.charset.MalformedInputException: Input length = 1

1、问题 项目启动报错: Exception in thread "main" org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1提示原因: Caused by: java.nio.charset.MalformedInputException: Input length 1…...

yarn的安装和配置使用

文章目录 一、前言二、yarn简介三、yarn的特点四、yarn安装五、配置yarn5.1 全局配置5.2 项目配置 五、使用yarn六、yarn常用命令七、版本管理 一、前言 Yarn是facebook发布的一款取代npm的包管理工具,本文给大家介绍yarn的安装和使用,最详细教程&#…...

JVM知识总结(即时编译)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 即时编译 Java编译器经过解释执行,其执行速度必然会比…...

【网络】TCP协议——TCP连接相关、TCP连接状态相关、TCP数据传输与控制相关、TCP数据处理和异常、基于TCP应用层协议

文章目录 Linux网络1. TCP协议1.1 TCP连接相关1.1.1 TCP协议段格式1.1.2 确定应答(ACK)机制1.1.3 超时重传机制 1.2 TCP连接状态相关1.2.1 TIME_WAIT状态1.2.2 CLOSE_WAIT 状态 1.3 TCP数据传输与控制相关1.3.1 滑动窗口1.3.2 流量控制1.3.3 拥塞控制1.3.4 延迟应答1.3.5 捎带应…...

一起看看JavaAgent到底是干啥用的

JavaAgent 简介 定义: JDK提供的一种能力,允许开发者在运行时对已有class代码进行注入和修改。用途: 增强和修改类执行,如IntelliJ IDEA使用JavaAgent增强JVM行为实现调试功能。 JavaAgent 工作原理 premain 方法: JavaAgent的入口点,接收…...

k8s工作负载控制器--DaemonSet

文章目录 一、概述二、适用场景三、基本操作1、官网的DaemonSet资源清单2、字段解释3、编写DaemonSet资源清单4、基于yaml创建DaemonSet5、注意点5.1、必须字段5.2、DaemonSet 对象的名称5.3、.spec.selector 与 .spec.template.metadata.labels之间的关系 6、查看DaemonSet6.1…...

探索Python文档自动化的奥秘:MkDocs的神奇之旅

文章目录 **探索Python文档自动化的奥秘:MkDocs的神奇之旅**第一部分:背景为什么选择MkDocs? 第二部分:MkDocs是什么?MkDocs:文档生成的瑞士军刀 第三部分:如何安装MkDocs?一键安装&…...

树莓派边缘计算网关搭建:集成MQTT、SQLite与Flask的完整解决方案

一、项目概述 随着物联网(IoT)的快速发展,边缘计算的应用越来越广泛。边缘计算可以将数据处理和分析推向离数据源更近的地方,从而降低延迟,提高效率。本文将介绍如何利用树莓派构建一个多协议边缘计算网关&#xff0c…...

如何通过GD32 MCU内部ADC参考电压通道提高采样精度?

ADC采样精度受很多因素影响,比如电源波动、参考电压波动、输入信号波动等,GD32 MCU内部提供了一个参考电压通道,理论上可以优化由于电源和参考电压较大波动引入的采样误差。 如下图所示,GD32F303 ADC内部17通道为VREFINT参考电压…...

Centos安装OpenSearch

Centos安装OpenSearch 下载并安装OpenSearch下载OpenSearch RPM包导入公共GNU Privacy Guard(GPG)密钥。此密钥验证您的OpenSearch实例是否已签名安装RPM包安装完设置开机自启动OpenSearch启动OpenSearch验证OpenSearch是否正确启动 测试OpenSearch向服务…...

【pkill pgrep】Centos/Linux pkill命令详细介绍

【pkill & pgrep】Centos/Linux pkill命令详细介绍 简介 基础语法 选项介绍 退出状态 基本用法 注意事项 简介 系统版本:Centos7.6 pkill命令用于杀死一个进程,会根据进程名称和其他属性杀死进程(默认会向进程发送SIGTERM信号&…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...