Redis持久化笔记(3)

news2024/11/24 15:30:46

redis持久化:把内存的数据存放到磁盘,避免因为断电等导致数据丢失。

RDB(Redis Database)

rdb就是在一定时间间隔内把当时的数据和状态保存为 .rdb文件放在磁盘中。

自动触发设置:在redis.conf

 修改.rdb文件的保存位置​​​​​​:​

可以在redis中使用config get dir命令获取.rdb的保存位置

手动触发:SAVE(不要用)和BGSAVE(默认)命令

SAVE:会中断redis的其他功能,当持久化操作完成后再重新启用。

BGSAVE:在后台异步进行保存操作,会fork一个子进程由它来执行持久化操作。

lastsave:获取上一次持久化操作成功的时间戳

修复破损的rdb文件:在set操作时value读到一半时redis死掉了,数据会出错从而可能导致整个rdb都坏了。

执行命令: redis-check-rdb    /(路径)/dump.rdb(可能破损的rdb文件)

禁用rdb:

1.在配置文件中删除save

2.动态禁用:redis-cli config set save ""

AOF(Append Only File)

aof:以日志形式记录每个写操作,对于该日志文件只允许追加不允许改写。redis启动时重新读该文件,将使用写操作重新执行一遍。

默认情况下,redis没有开启aof。

开启aof:修改配置文件:appendonly yes。

redis与aof文件间有个aof缓冲区,它会控制什么时候把写操作记录到aof文件,避免频繁的磁盘io。

为了防止aof文件膨胀,会进行aof重写,把一些命令合并,压缩文件。

写回策略:可以到配置文件中修改:appendfsync everysec

1、always:同步写回,写一个记一个,频繁io。

2、everysec(默认):每秒将aof缓冲区的内容写到磁盘。

3、no:每次命令都写到aof缓冲区,由操作系统决定何时将缓冲区写到磁盘。

aof 在 配置文件 的内容:

开启:appendonly yes

写回策略:appendfsync everysec

aof文件保存位置:redis6及以前:与rdb相同,都是配置文件的 dir 配置

                              redis7之后:appenddirname "appendonlydir",如果dir为 /myredis ,

                                                   那么最后aof文件会在 /myredis/appendonlydir/ 下。

aof文件保存名称:redis6及以前:appendfilename "appendonly.aof"

                              redis7之后:appendfilename "appendonly.aof",但会一分为三,会有三个文件。

如果在命令写入aof时redis挂了,aof会被污染,这时启动redis会报错,无法启动。

修复方法:redis自带的那个aof修复工具:redis-check-aof 

                在aof文件存放目录下执行命令: redis-check-aof --fix appendonly.aof.1.incr.aof

aof重写:当aof文件越来越大,可以使用aof重写进行文件瘦身

在配置文件中设置aof文件到达什么程度时开始aof重写。

设置重写峰值:auto-aof-rewrite-min-size 64mb

aof文件中有base.aof和incr.aof ,语句保存在incr.aof中,设置的峰值也是设置给incr.aof文件的,

当incr.aof文件超过了峰值,redis会自动aof重写,把incr.aof文件与base.aof文件合并瘦身后写给新的base.aof,而新的incr.aof重新开始记录。

这里把峰值设置为1k方便演示。

如果想要立刻进行aof重写:只需要在redis中执行:bgrewriteaof 

RDB 与 AOF 混合持久化

开启或关闭:aof-use-rdb-preamble yes/no

aof的优先级比较高

重启redis时优先载入aof文件来恢复数据(aof的数据集更完整)。rdb更适合用于备份数据库(aof会不断变化不好备份)。

rdb先进行快照存储,aof进行增量保存,当重写策略或手动触发重写时,将最新的数据存储为新的rdb记录。

纯缓存模式

同时关闭aof和rdb

关闭rdb:save "",关闭后依然可以使用save或bgsave生成rdb文件

关闭aof:appendonly no,关闭后依然可以使用bgrewriteaof生成aof文件

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

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

相关文章

【Vue】三、使用ElementUI实现图片上传

目录 一、前端代码实现 二、后端代码实现 三、调试效果实现 一、前端代码实现 废话不多说直接上代码 <el-form-item prop"image" label"上传图片" v-model"form.image"><el-upload:action"http://localhost:8…

【prometheus-operator】k8s监控集群外redis

1、部署exporter GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x redis_exporter-v1.57.0.linux-386.tar.gz # 解压 tar -zxvf redis_exporter-v1.57.0.linux-386.tar.gz # 启动 nohup ./redi…

Go——指针和内存逃逸

区别于C/C中的指针&#xff0c;Go语言中的指针不能进行偏移和运算&#xff0c;是安全指针。 要搞明白Go语言中的指针概念需要先知道3个概念&#xff1a;指针地址&#xff0c;指针类型和指针取值。 一. Go语言的指针 Go语言中的函数传参都是值拷贝&#xff0c;当我们想修改某个…

# Django通过开关控制数据库参数(JS版)

目录 场景初始的视图层HTML部分JS代码视图层接受部分 场景 此时我的表单中有一排开关 数据库有一排状态 需求是要当开关开启时数据库state为1&#xff0c;关闭时为0 初始的视图层 将整个adv数据表返回给前端HTML def adv(request):adv_list Adv.objects.all()return rende…

语言教育App头牌Duolingo如何重新点燃用户增长350%?

Duolingo是全球最大的语言教育APP&#xff0c;拥有数亿用户&#xff0c;然而用户增长正在放缓&#xff0c;本案例以Duolingo增长 通过数据建模洞察关键指标&#xff0c;并围绕指标用增长实验驱动&#xff0c;设计植根于创新的增长模式&#xff0c;包括启动排行榜&#xff0c;重…

docker仓库登录及配置insecure-registries的方法

docker仓库登录及配置insecure-registries的方法 这篇文章主要介绍了docker仓库登录配置insecure-registries的方法,docker客户端如果配置中添加了insecure-registary配置&#xff0c;就不需要在docker 客户端配置上对应证书&#xff0c;如果不配置要在/etc/docker/certs.d/目…

【阅读论文】When Large Language Models Meet Vector Databases: A Survey

摘要 本调查探讨了大型语言模型&#xff08;LLM&#xff09;和向量数据库&#xff08;VecDB&#xff09;之间的协同潜力&#xff0c;这是一个新兴但迅速发展的研究领域。随着LLM的广泛应用&#xff0c;出现了许多挑战&#xff0c;包括产生虚构内容、知识过时、商业应用成本高昂…

流畅的 Python 第二版(GPT 重译)(十三)

第二十四章&#xff1a;类元编程 每个人都知道调试比一开始编写程序要困难两倍。所以如果你在编写时尽可能聪明&#xff0c;那么你将如何调试呢&#xff1f; Brian W. Kernighan 和 P. J. Plauger&#xff0c;《编程风格的要素》 类元编程是在运行时创建或自定义类的艺术。在 P…

ZYNQ EMIO MIO

1 概述 先来了解GPIO的BANK分布&#xff0c;在UG585文档GPIO一章中可以看到GPIO是有4个BANK&#xff0c; 注意与MIO的BANK区分。 BANK0 控制32个信号&#xff0c;BANK1控制22个信号&#xff0c;总共是MIO的54个引脚&#xff0c;也就是诸如 SPI,I2C,USB,SD 等 PS 端外设接口&am…

C语言字符函数与字符串函数:编织文字的舞会之梦(上)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 在编程的过程中&#xff0c;我们经常要处理字符以及字符串&#xff0c;为了方便操作这些字符和字符串&#xff0c;C语言标准库中提供…

jmx_prometheus_javaagent-0.19.0.jar+Prometheus+Grafana 监控Tongweb嵌入式(by lqw)

文章目录 1.思路2.部署准备3.应用jar包修改配置和导入tw嵌入式的依赖&#xff08;参考&#xff09;4.Prometheus部署5.Prometheus配置6.安装和配置Grafana 1.思路 Tongweb嵌入式最终是把依赖打入到java应用&#xff08;也就是jar包里&#xff09;&#xff0c;然后启动jar包进行…

TinTin Web3 Bounty 挑战杯开启,Sui 向你发出挑战邀请

以下文章来源于TinTinLand &#xff0c;作者TinTinLand。 2024 年开年最火的是什么&#xff1f; 对 Web3 来说&#xff0c;Bounty 任务应该是普通人获得行业“一杯羹”的重要捷径&#xff01; 通过深入学习各类 Web3 技术&#xff0c;凭借实战锻炼开发创新项目&#xff0c;就…

Linux学习:git补充与调试工具gdb

目录 1. git版本控制器&#xff08;续&#xff09;1.1 git本地仓库结构1.2 git实现版本控制与多人协作的方式1.3 git相关指令&#xff0c;多分支模型与.gitignore文件 2. gdb调试工具2.1 企业项目开发流程简述与调试的必要性2.2 bug的调试思路方法与调式工具的使用 1. git版本控…

ResNet目标检测算法实现交通灯分类

红绿灯识别方案&#xff1a;https://zhuanlan.zhihu.com/p/674791906 目录 一、制作数据集二、ResNet算法三、pytorch转onnx文件四、onnx推理测试五、onnx转mnn 一、制作数据集 1、数据集划分 将红绿灯数据集大文件夹中不同类别的小文件夹中的图片按照9&#xff1a;1进行划分…

小程序绕过 sign 签名

之前看到了一篇文章【小程序绕过sign签名思路】之前在做小程序渗透时也遇到了这种情况&#xff0c;但是直接放弃测试了&#xff0c;发现这种思路后&#xff0c;又遇到了这种情况&#xff0c;记录下过程。 并没有漏洞分享&#xff0c;仅仅是把小程序也分享出来&#xff0c;方便…

Idea 不能创建JDK1.8的spring boot项目

由于https://start.springboot.io/ 不支持JDK1.8&#xff0c;那么我们需要换idea的springboot创建源&#xff0c;需要换成 https://start.aliyun.com&#xff0c;这也是网上大部分教程说的&#xff0c;但是我这边会报这样的错误&#xff1a; Initialization failed for https:…

Go --- Go语言垃圾处理

概念 垃圾回收&#xff08;GC-Garbage Collection&#xff09;暂停程序业务逻辑SWT&#xff08;stop the world&#xff09;程序根节点&#xff1a;程序中被直接或间接引用的对象集合&#xff0c;能通过他们找出所有可以被访问到的对象&#xff0c;所以Go程序的根节点通常包括…

小程序跨端组件库 Mpx-cube-ui 开源:助力高效业务开发与主题定制

Mpx-cube-ui 是一款基于 Mpx 小程序框架的移动端基础组件库&#xff0c;一份源码可以跨端输出所有小程序平台及 Web&#xff0c;同时具备良好的拓展能力和可定制化的能力来帮助你快速构建 Mpx 应用项目。 Mpx-cube-ui 提供了灵活配置的主题定制能力&#xff0c;在组件设计开发阶…

GB28181 —— 5、C++编写GB28181设备端,完成将USB摄像头视频实时转发至GB28181服务并可播放(附源码)

被测试的USB摄像头 效果 源码说明 主要功能模拟设备端&#xff0c;完成注册、注销、心跳等&#xff0c;同时当服务端下发指令播放视频时 设备端实时读取USB摄像头视频并通过OpenCV处理后实时转ps格式后封包rtp进行推送给服务端播放。 源码 /****remark: pes头的封装,里面的具…

ETH Gas 之 Base Fee Priority Fee

前情回顾 ETH网络 之 Gas EIP-1559 EIP-1559 EIP-1559是以太坊改进提案&#xff08;Ethereum Improvement Proposal&#xff09;&#xff0c;旨在改进以太坊的交易费用机制。该提案引入了一种新的交易费用模型&#xff0c;以提高交易费用的可预测性和网络的效率。我们本文各…