redis07 持久化(RDB、AOF)

news2024/10/5 16:22:29

思维草图

redis持久化认识

Redis是一个基于内存的数据库,它的数据是存放在内存中,内存有个问题就是关闭服务或者断电会丢失。

Redis的数据也支持写到硬盘中,这个过程就叫做持久化。

Redis提供了2种不同形式的持久化方式。

  • RDB(Redis DataBase)
  • AOP(Append Of File)

RDB(Redis DataBase)

在指定的时间间隔内将内存中的数据集快照写入磁盘,即Snapshot快照,它恢复时是将快照文件直接读到内存里。

特征

  • redis会单独创建(fork)一个子进程进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束后,再用这个临时文件替换上次持久化好的文件。
  • 整个过程中,主进程是不进行任何IO操作的,确保了极高的性能。
  • 如果需要进行大规模的恢复,且对数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。
  • RDB的缺点是最后一次持久化后的数据可能丢失。

配置

打开redis.conf文件

备份与恢复

备份

将rdb的备份文件 *.rdb 文件拷贝到别的地方

cp dump.rdb dump2.rdb

恢复

  • 关闭redis
  • 把备份的文件拷贝到工作目录 cp dump2.rdb dump.rdb
  • 启动redis,备份数据直接加载,数据被恢复

优势与劣势

优势

  • 适合大规模数据恢复
  • 对数据完整性和一致性要求不高
  • 节省磁盘空间,恢复速度快

劣势

  • Fork的时候,内存中的数据会被克隆一份,大致2倍的膨胀
  • 虽然Redis在fork的时候使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能
  • 在备份周期在一定间隔时间做一次备份,所以如果Redis意外down的话,就会丢失最后一次快照后所有修改

AOF(Append Only File)

以日志的形式来记录每个写操作(增量保存),将redis执行过的所有写指令记录下来(读操作不记 录),只允追加文件但不可改写文件,redis启动之初会读取该文件重新构造数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。AOF默认不开启。

特征

  • 客户端的请求写命令会被append追加到AOF缓冲区内
  • AOF缓冲区会根据AOF持久化策略[always,everysec,no]将操作sync同步到磁盘的AOF文件中
  • AOF文件大小超过重写策略或手动重写时,会对AOF文件进行重写(rewrite),压缩AOF文件容量
  • redis服务器重启时,会重新load加载AOF文件中的写操作达到数据恢复的目的

配置

内容和rdb的大同小异

AOF和RDB同时开启,系统默认取AOF的数据(数据不会存在丢失)。

备份与恢复

备份和恢复的操作同RDB一样,都是拷贝备份文件, 需要恢复时再拷贝到Redis工作目录下,启动系统即加载。

但是AOF会有有两种情况

正常恢复

  • 修改默认的appendonly no,改为yes
  • 将有数据的aof文件复制一份保存到对应的目录(查看目录:config get dir)
  • 重启redis然后重新加载

异常恢复

  • 修改默认的appendonly no,改为yes
  • 遇到aof文件损坏,通过 /usr/local/bin/redis-check-aof --fix appendonly.aof 进行 恢复

优势与劣势

优势

  • 备份机制更稳健,丢失数据概率更低
  • 可读的日志文本,通过操作AOF文件,可以处理误操作

劣势

  • 比RDB占用更多的磁盘空间
  • 恢复备份速度要慢
  • 每次读写都同步的话,有一定的性能压力
  • 存在个别bug,造成不能恢复

总结

用哪个好?

官方推荐2个都启用。

  • 如果对数据不敏感,可以单独用RDB。
  • 不建议单独使用AOF,因为可能会出现BUG。
  • 如果只是做纯内存缓存,可以都不用。

   

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

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

相关文章

安全团队官网介绍页源码

安全团队官网介绍页源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 下载地址 https://www.qqmu.com/2383.html

Unity 角色控制(初版)

角色控制器组件,当然是将组件放在角色上了。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c1 : MonoBehaviour {// 获取角色控制器private CharacterController player;void Start(){// 加载角色控制器player …

【自然语言处理六-最重要的模型-transformer-下】

自然语言处理六-最重要的模型-transformer-下 transformer decoderMasked multi-head attentionencoder和decoder的连接部分-cross attentiondecoder的输出AT(Autoregresssive)NAT transformer decoder 今天接上一篇文章讲的encoder 自然语言处理六-最重要的模型-transformer-…

红黑树的简单介绍

红黑树 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍&#x…

爬虫案例二

第一步电影天堂_免费在线观看_迅雷电影下载_电影天堂网 (dytt28.com)电影天堂_电影下载_高清首发 (dytt89.com)电影天堂_免费在线观看_迅雷电影下载_电影天堂网 (dytt28.com) 打开这个网站 我直接打开 requests.exceptions.SSLError: HTTPSConnectionPool(hostwww.dytt28.com…

99.qt qml-单例程序实现

在之前讲过: 58.qt quick-qml系统托盘实现https://nuoqian.blog.csdn.net/article/details/121855993 由于,该示例只是简单讲解了系统托盘实现,并没有实现单例程序,所以多次打开后就会出现多个exe出现的可能,本章出一章QML单例程序实现, 多次打开始终只显示出第一个打开…

论文阅读:2022Decoupled Knowledge Distillation解耦知识蒸馏

SOTA的蒸馏方法往往是基于feature蒸馏的,而基于logit蒸馏的研究被忽视了。为了找到一个新的切入点去分析并提高logit蒸馏,我们将传统的KD分成了两个部分:TCKD和NCKD。实验表明:TCKD在传递和样本难度有关的知识,同时NCK…

【RT-DETR有效改进】全新的SOATA轻量化下采样操作ADown(轻量又涨点,附手撕结构图)

一、本文介绍 本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的ADown模块来改进我们的Conv模块,其中YOLOv9针对于这个模块并没有介绍,只是在其项目文件中用到了,我将其整理出来用于我们的YOLOv8的项目,经…

动态之美:Motion 5特效,让视频栩栩如生 mac版

Motion 5,一款强大的视频后期特效软件,凭借其丰富的功能和出色的性能,成为了众多影视制作人员的首 选工具。它不仅能够满足专业级影视制作的需求,也适合初学者探索和实践视频特效的魅力。 Motion 5软件获取 Motion 5拥有丰富多样…

SpringBoot源码解读与原理分析(四十)基于jar/war包的运行机制

文章目录 前言第14章 运行SpringBoot应用14.1 部署打包的两种方式14.1.1 以可独立运行jar包的方式14.1.2 以war包的方式 14.2 基于jar包的独立运行机制14.2.1 可独立运行jar包的相关知识14.2.2 SpringBoot的可独立运行jar包结构14.2.3 JarLauncher的设计及工作原理14.2.3.1 Jar…

怎样获得CNVD原创漏洞证书

1. 前言 因为工作变动,我最近把这一年多的工作挖漏洞的一些工作成果提交到了CNVD漏洞平台(https://www.cnvd.org.cn/),获得了多张CNVD原创漏洞证书。本篇博客讲下怎么获得CNVD原创漏洞证书,以供大家参考。 2. CNVD原创…

【设计模式 03】抽象工厂模式

一个具体的工厂,可以专门生产单一某一种东西,比如说只生产手机。但是一个品牌的手机有高端机、中端机之分,这些具体的属于某一档次的产品都需要单独建立一个工厂类,但是它们之间又彼此关联,因为都共同属于一个品牌。我…

数据可视化原理-腾讯-散点图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

白银期货开户交割规则有哪些?

白银期货交割是指期货合约到期时,交易双方通过该期货合约所载商品所有权的转移,了结到期未平仓合约的过程。小编在此为大家详细介绍白银期货的交割规则有哪些。白银期货的交割规则有哪些?白银期货的交割规则主要有: 一、交割商品…

echarts如何实现3D饼图(环形图)?

一、实现的效果 二、具体步骤 1.安装依赖 npm install echarts 2.引入echarts import * as echarts from echarts; 注意:这里需要用到echarts-gl,必须单独引入才可以 import echarts-gl; 3.echarts部分代码 我知道这部分内容很多,但只要cv…

【ES入门一:基础概念】

集群层面上的基础概念 集群 由多个es实例组成的叫做集群 节点 单个ES的服务实例叫做节点。每个实例都有自己的名字,就是在配置文件中配置的‘node.name’中的内容。为了标识每个节点,每个节点启动后都会分配一个UID,存储在data目录。每个…

第七十四天漏洞发现-Web框架中间件插件BurpSuite浏览器被动主动探针

第74天 漏洞发现-Web框架中间件插件&BurpSuite&浏览器&被动&主动探针 最近几天都是演示工具如何使用如:AWVS、Nessus、nexpose等综合性利用工具。 Burp插件和漏扫工具的区别 知识点: 1、浏览器插件&BurpSuite插件 2、Hack-Tools&…

基于协同过滤的旅游推荐系统设计与实现

基于协同过滤的旅游推荐系统设计与实现 在当今旅游业蓬勃发展的背景下,人们对于旅游体验的需求日益增加,如何为用户提供更加个性化、精准的旅游推荐成为了旅游行业的一个重要课题。为解决这一问题,我们设计并实现了一个基于协同过滤的旅游推…

“互动+消费”时代,借助华为云GaussDB重构新零售中消费逻辑

场与人的关系 “人—货—场”是零售中重要的三要素,我们一直在追求,将零售中的人、货、场进行数字化并在云端进行整合,形成属于我们自己的云平台。 随着互联网技术为信息提供的便利,消费者的集体力量正在逐渐形成一股强大的反向…

RabbitMQ的整体架构是怎么样的?

RabbitMQ是一个开源的消息中间件,用于在应用程序之间传递消息。它实现了AMQP(高级消息队列协议)并支持其他消息传递协议,例如STOMP(简单文本定向消息协议)和MQTT(物联网协议) 他的整体架构大致如下: Producer&#xf…