Redis持久化模式RDB与AOF

news2025/6/8 0:48:12

RDB持久化

        RDB也被叫做Redis数据快照。简单来说就是把内存中的所有数据记录到磁盘中。当Redis实例故障重启后重磁盘中读取快照文件进行数据恢复(快照文件默认保存在当前运行目录);

演示Redis正常停机自动执行一次RDB操作

配置Redis触发RDB机制

RDB其它配置也可在redis.conf中设置

是否对RDB文件进行压缩

建议不开启,压缩RDB会消耗CPU资源相较于磁盘来比CPU资源更宝贵

修改RDB文件名

前面正常关闭Redis会自动去执行一次RDB操作,生成的文件名为dump.rdb,我们可在此对生成rdb文件的名称进行修改

可在此修改生成rdb的文件名

修改文件保存路径

如上生成的rdb文件默认保存在Redis根目录中,可修改此处路径更改rdb/aof文件的保存路径。后续Redis宕机或重启时Redis会读取此路径和上面配置好的rdb/aof文件名去恢复数据;

说明:

       xxx.rdb或xxx.aof文件都会存放在此配置的目录中;

RDB总结

        RDB的save和bgsave区别?

save和bgsave都是Redis用来生成rdb文件的命令。区别在于save命令是Redis主线程去执行生成/保存RDB文件等一系列操作,因为Redis是单线程的所以在使用save命令生成RDB文件期间Redis是不会处理其它客户的任何请求;bgsave命令是fork的Redis主进程得到一个新的子进程去做RDB的生成/保存操作(bgsave的fork主进程生成子进程的操作会短暂阻塞)但后续最耗时的操作 RDB生成/保存操作都是由子进程去处理的不会阻塞主进程处理其它客户端请求。

特别说明

        1.Redis正常退出执行的RDB使用的是save命令;

        2.Redis.conf中配置的RDB触发机制使用的是bgsave命令;

RDB方式bgsave基本流程

1.fork主进程得到一个子进程,共享主进程内存空间;

2.子进程读取内存数据并写入新的RDB文件;

3.用新的RDB文件替换旧的RDB文件;

RDB会在什么时候执行?save 60 1000代表什么含义?

RDB什么时候执行及save 60 1000含义

1.正常停止Redis服务时自动执行一次RDB;

2.触发了在redis.conf中配置的RDB触发机制时会执行,如save 600 1000即600秒内至少执行了1000次修改操作时会执行一次RDB;

RDB缺点

1.RDB执行间隔时间长,容易造成数据丢失;

        以配置save 600 1000为例:

                即600秒内至少发生1000次修改操作时触发RDB。假如程序执行到500秒时执行了

                999次写入操作差一次写入操作就执行RDB,若此时Redis服务器宕机。则前面999

                次修改操作都会丢失;

2.fork主进程、压缩、写出RDB文件都比较耗时;

AOF持久化

        AOF全称为Append Only File(追加文件),Redis处理的每一个写命令都会记录在AOF文件中,AOF可以看做是命令日志文件(AOF默认是关闭的);

修改配置文件开启AOF

编辑reids.conf文件开启AOF 及修改AOF文件名称

修改AOF记录频率

always:

        每执行一次写命令,立即记录到AOF文件;

everysec:

        写命令执行完先放入AOF缓冲区,然后每隔1秒将缓冲区中的数据写入到AOF文件中去

        (推荐使用,最多丢失1秒的数据);

no:

        写命令执行完先放入AOF缓冲区,由操作系统决定何时将缓冲区中的数据写到AOF文件;

查看AOF是否生效

1.开启AOF模式

2.启动Reids服务端

3.写入测试数据

4.Ctrl + C关闭Redis服务端

5.观察生成的AOF文件

        5.1.生成的AOF文件

        5.2.AOF文件记录的Redis命令

5.启动Redis服务端

bgrewriteaof命令

        AOF因为记录的是Redis的命令,AOF文件一般要比RDB大得多,而且AOF会记录对同一个Key的多次写操作,对同一个Key的多次写操作只有最后一次才是有意义的。可以通过执行bgrewriteaof命令让AOF文件执行重写功能减小AOF文件体积(类似于执行重写后会去掉AOF文件中那些无意义的命令)

配置AOF文件重写阈值

在redis.conf文件中配置AOF文件重写阈值

配置项

        # AOF文件比上次文件 增长超过多少百分比时触发重写;

        auto-aof-rewrite-percentage 100

        # AOF文件至少多大以上才出发重写;

        auto-aof-rewrite-min-size 64mb

说明

        如上两个配置项是并且的关系,即AOF至少超过64mb 且 AOF文件比上次文件增长超过

        100%时触发重写;

RDB与AOF对比

其它补充

        若同时配置了RDB和AOF,Redis优先重AOF中读取并恢复Redis数据,因为AOF的数据完整性更高;

有了AOF配置每秒刷盘(最多丢失1秒的数据)还有必要配置RDB吗?

         如果追求数据的极致安全就有必要,此时配置的RDB就充当一个备份的作用,把数据备份到磁盘或者拷贝一份RDB数据放在别的机器或机房去(因为RDB比AOF文件体积要小恢复速度更快更适合做异地备份),起到一个异地容灾的作用;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】树形结构--二叉树(二)

【数据结构】树形结构--二叉树(二) 一.二叉树的实现1.求二叉树结点的个数2.求二叉树叶子结点的个数3.求二叉树第k层结点的个数4.求二叉树的深度(高度)5.在二叉树中查找值为x的结点6.判断二叉树是否为完全二叉树7.二叉树的销毁 一.…

深度学习题目1

梯度下降法的正确步骤是什么? a.计算预测值和真实值之间的误差 b.重复迭代,直至得到网络权重的最佳值 c.把输入传入网络,得到输出值 d.用随机值初始化权重和偏差 e.对每一个产生误差的神经元,调整相应的(权重&#xff…

【Oracle】锁

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 锁基础概述1.1 锁的概念与作用1.2 锁的工作原理1.3 Oracle锁的分类 2. 行级锁 (Row-Level Locks)2.1 行级锁的基本概念2.1.1 TX锁(事务锁)2.1.2 行级锁的工作机制 2.2 行级锁的类型2.…

JS逆向爬虫教程与实战技巧

想要一个关于爬虫JS逆向的详细教程。这是一个很专业的技术需求,最近有个可能是正在学习爬虫技术的开发者或者数据分析师,遇到了需要破解JavaScript加密的反爬机制的问题,想让我出一期实战教程,话不多说,开干。 以下是我…

【Redis】Redis 的常见客户端汇总

目录 一、命令行客户端 二、图形界面的客户端 三、Java 客户端 3.1 SpringDataRedis 3.2 Jedis 3.2.1 连接池的配置 3.3 Lettuce 3.3.1 RedisTemplate 工具类实现 3.3.2 自定义序列化器 3.3.3 StringRedisTemplate 3.3.4 集群配置 3.3.4.1 刷新节点集群拓扑动态感应…

关于akka官方quickstart示例程序(scala)的记录

参考资料 https://doc.akka.io/libraries/akka-core/current/typed/actors.html#first-example 关于scala语法的注意事项 extends App是个语法糖,等同于直接在伴生对象中编写main 方法对象是通过apply方法创建的,也可以通过对象的名称单独创建&#x…

2025年渗透测试面试题总结-腾讯[实习]玄武实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]玄武实验室-安全工程师 1. 自我介绍 2. CSRF原理 3. Web安全入门时间 4. 学习Web安全的原因 …

网站首页菜单两种布局vue+elementui顶部和左侧栏导航

顶部菜单实现 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Vue.js Element UI 路由导航</…

@Builder的用法

Builder 是 Lombok 提供的一个注解&#xff0c;用于简化 Java 中构建对象的方式&#xff08;Builder 模式&#xff09;。它可以让你以更加简洁、链式的方式来创建对象&#xff0c;尤其适用于构造参数较多或部分可选的类。

vue实现点击按钮input保持聚焦状态

主要功能&#xff1a; 点击"停顿"按钮切换对话框显示状态输入框聚焦时保持状态点击对话框外的区域自动关闭 以下是代码版本&#xff1a; <template><div class"input-container"><el-inputv-model"input"style"width: 2…

[蓝桥杯]取球博弈

取球博弈 题目描述 两个人玩取球的游戏。 一共有 NN 个球&#xff0c;每人轮流取球&#xff0c;每次可取集合 n1,n2,n3n1​,n2​,n3​中的任何一个数目。 如果无法继续取球&#xff0c;则游戏结束。 此时&#xff0c;持有奇数个球的一方获胜。 如果两人都是奇数&#xff…

[Java 基础]数组

什么是数组&#xff1f;想象一下&#xff0c;你需要存储 5 个学生的考试成绩。你可以声明 5 个不同的 int 变量&#xff0c;但这会显得很笨拙。数组提供了一种更简洁、更有组织的方式来存储和管理这些数据。 数组可以看作是相同类型元素的集合&#xff0c;这些元素在内存中是连…

‘pnpm‘ 不是内部或外部命令,也不是可运行的程序

npm install -g pnpm changed 1 package in 4s 1 package is looking for funding run npm fund for details C:\Users\gang>pnpm pnpm 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 原来是安装的全局路径被我改了 npm list -g --depth 0 把上述…

Android Test2 获取系统android id

Android Test2 获取系统 android id 这篇文章针对一个常用的功能做一个测试。 在项目中&#xff0c;时常会遇到的一个需求就是&#xff1a;一台设备的唯一标识值。然后&#xff0c;在网络请求中将这个识别值传送到后端服务器&#xff0c;用作后端数据查询的条件。Android 设备…

webpack打包学习

vue开发 现在项目里安装vue&#xff1a; npm install vue vue的文件后缀是.vue webpack不认识vue的话就接着安插件 npm install vue-loader -D 这是.vue文件&#xff1a; <template> <div><h2 class"title">{{title}}</h2><p cla…

基于Java(Jsp+servelet+Javabean)+MySQL实现图书管理系统

图书管理系统 一、需求分析 1.1 功能描述 1.1.1“读者”功能 1&#xff09;图书的查询&#xff1a;图书的查询可以通过搜索图书 id、书名、作者名、出版社来实现,显示结果中需要包括书籍信息以及是否被借阅的情况&#xff1b; 2&#xff09;图书的借阅&#xff1a;借阅图书…

服务器CPU被WMI Provider Host系统进程占用过高,导致系统偶尔卡顿的排查处理方案

问题现状 最近一个项目遇到一个非常奇葩的问题&#xff1a;正式服务器被一个WMI Provider Host的系统进程占用大量的CPU资源&#xff0c;导致我们的系统偶尔卡顿 任务管理器-详细信息中CPU时间&#xff0c;这个进程也是占用最多的 接口时不时慢很多 但单独访问我们的接口又正…

JavaSwing之--JMenuBar

Java Swing之–JMenuBar(菜单栏) JMenuBar是 Java Swing 库中的一个组件&#xff0c;用于创建菜单栏&#xff0c;通常位于窗口的顶部。它是菜单系统的容器&#xff0c;用于组织和显示应用程序的菜单结构 菜单栏由菜单构成&#xff0c;菜单由菜单项或子菜单构成&#xff0c;也…

【物联网-S7Comm协议】

物联网-S7Comm协议 ■ 调试工具■ S7协议-简介■ S7协议和modbusTCP协议区别■ OSI 层 S7 协议■ S7协议数据结构 &#xff08;TPKTCOTPS7Comm&#xff09;■ TPKT&#xff08;第五层&#xff1a;会话层&#xff09; 总共占4个字节■ COTP&#xff08;第六层&#xff1a;表示层…

数据分析后台设计指南:实战案例解析与5大设计要点总结

引言 数据于企业而言异常重要&#xff0c;企业通过数据可以优化战略决策&#xff0c;因此企业对数据的采集正趋向智能化、数字化&#xff0c;数据分析后台就是企业智能化、数字化记录、分析数据的渠道。本文分享一个数据分析后台原型实战案例&#xff0c;通过页面拆解总结原型…