大厂面试之【Redis持久化机制】 - RDB和AOF概述及应用配置

文章目录

  • Redis持久化
    • 1. RDB(Redis DataBase)
      • 1.1 概述
      • 1.2 配置应用
    • 2. AOF(Append Only File)
      • 2.1 概述
      • 2.2 配置应用

Redis持久化


先上结论:Redis持久化操作分为rdb以及aof,但是前者已经够用


1. RDB(Redis DataBase)


1.1 概述


  1. rdb保存的是dump.rbd文件
  2. 在指定的时间间隔内将内存中的数据集快照写入磁盘,类似于Snapshot快照
  3. 恢复时是将快照文件直接读到内存里
  4. redis.conf的快照配置中设置了save保存机制之后,可以设置持久化,一般来说conf配置文件不需要进行修改

其原理在主进程的运行过程中,创建一个子进程。子进程会先将所有的数据写入到一个临时文件中,等持久化结束,再用这个临时文件替换上次持久化的文件。在整个过程中,主进程是不进行任何的读写操作,确保了性能。

1.2 配置应用


编辑配置文件redis.conf,找到SNAPSHOTTING关键字,写入我们自己的值

在这里插入图片描述

其上的修改字段表示多少秒内,有多少个key进行了修改,会触发保存机制

# 900秒内,有1个key进行了修改,将触发保存机制
save 900 1

设置持久化文件的名称以及设置持久化文件的路径位置。这里千万要注意,得赋予这个对应的文件夹写入权限,例如chomod -R 777 /usr/local/bin/myRedisDump

在这里插入图片描述

此后,我们每次触发一次保存机制,相应的文件就会存储在该文件夹下

在这里插入图片描述

触发机制

  1. save的规则满足的情况下,会自动触发rdb规则
  2. 执行flushall命令,也会触发rdb规则
  3. 退出redis,也会产生rdb文件

如何恢复rdb文件

首先查看我们存在的目录位置

config get dir

在这里插入图片描述

rdb文件放在所示目录下即可,redis启动会自动监测该数据文件并且恢复

优缺点

优点:

  1. 适合大规模的数据恢复
  2. 对数据的完整性要不高

缺点:

  1. 需要一定的时间间隔进程操作,如果意外宕机了,这个最后一次修改数据就没有的了
  2. 开启子进程的时候,会占用一定的内容空间

2. AOF(Append Only File)


2.1 概述


  1. aof保存的是appendonly.aof文件
  2. 将所有命令记录下来,恢复的时候直接全部重新执行,默认关闭该模式
  3. 以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件,但不可以改写文件,redis启动之初会读取该文件重新构建数据
  4. redis重启就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作

2.2 配置应用


编辑配置文件redis.conf,找到APPEND ONLY MODE关键字,将其改为yes即可

在这里插入图片描述

修复

如果生成的aof配置文件有错,redis无法正常启动,可以利用自带的修复软件

在这里插入图片描述

redis-check-aof --fix appendonly.aof

优缺点

优点:

  1. 每一次修改都同步,文件的完整性更好
  2. 从不同步,效率最高

缺点

  1. 相对文件数据来说,修复速度较慢
  2. 运行效率较慢,远远不如rdb

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案

单V及多V感知在自动驾驶在恶劣环境条件下的感知提升方案 附赠自动驾驶学习资料和量产经验:链接 自动驾驶中的视觉感知是车辆在不同交通条件下安全、可持续地行驶的关键部分。然而,在大雨和雾霾等恶劣天气下,视觉感知性能受到多种降级效应的极…

SBCFormer:能够在单板计算机上以每秒1帧的速度进行全尺寸ImageNet分类的轻量级网络

摘要 https://arxiv.org/ftp/arxiv/papers/2311/2311.03747.pdf 计算机视觉在解决包括智能农业、渔业和畜牧业管理等不同领域的实际问题中变得越来越普遍。这些应用可能不需要每秒处理许多图像帧,因此从业者倾向于使用单板计算机(SBCs)。尽管…

【经验分享】Ubuntu下如何解决问题arm-linux-gcc:未找到命令

【经验分享】Ubuntu下如何解决问题arm-linux-gcc:未找到命令 前言问题分析解决方法 前言 在编译过程中发现一个问题,明明之前安装了gcc-4.6版本,版本信息都是正常显示的,刚安装上去的时候也是可以用的。但不知道什么原因突然不能…

element-ui alert 组件源码分享

今日简单分享 alert 组件源码实现,主要从以下四个方面来分享: 1、alert 组件的页面结构 2、alert 组件的属性 3、alert 组件的 slot 4、alert 组件的方法 一、alert 组件的页面结构 二、alert 组件的属性 2.1 title 属性,标题&#xff…

php反序列化漏洞——phar反序列化漏洞

一.什么是phar文件 类比java语言 JAR是开发Java程序一个应用,包括所有的可执行、可访问的文件,都打包进了一个JAR文件里使得部署过程十分简单。 PHAR("Php ARchive")是PHP里类似于JAR的一种打包文件 对于PHP 5.3 或更高版本,Ph…

HDLbits 刷题 -- Alwaysblock2

学习: For hardware synthesis, there are two types of always blocks that are relevant: Combinational: always (*)Clocked: always (posedge clk) Clocked always blocks create a blob of combinational logic just like combinational always blocks, but…

使用Git处理Github中提交有冲突的pull request

前言: 为什么要写这篇文章,因为前段时间有一个开源的github中的项目有一个朋友提交了一个pr看了下是帮忙优化了下代码(十分感谢这位网友)。但是他提交的pr刚好和我的项目有许多的冲突导致无法自动合并,在github中提示…

SpringCloudAlibaba服务消费者调用nacos服务报错:java.net.UnknownHostException: xxx

确保服务情况正常 通过服务名字调用(注意不需要添加端口号) RequestMapping("/add") public String add() {String url "http://stock-nacos/stock/reduce";String result restTemplate.getForObject(url, String.class);System.out.println("下单…

Unix中的进程和线程-1

目录 1.如何创建一个进程 2.如何终止进程 2.2遗言函数 3.进程资源的回收 4.孤儿进程和僵尸进程 孤儿进程 (Orphan Process): 僵尸进程 (Zombie Process): 代码示例: 5. 进程映像的更新 在Linux中,进程和线程是操作系统进行工作调…

EasyCVR视频汇聚平台海康Ehome2.0与5.0设备接入时的配置区别

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

【教学类-09-05】20240402细线迷宫图03+箭头图片(A4横版一页-4份横版)

作品展示 背景需求: 在word模板上添加“形状-箭头”,结果生成的图片上,箭头位置挪移。 思考,如何直接在迷宫图上添加箭头,以图片形式将迷宫图箭头插入docx word模板 重点说明 代码展示 批量制作细线条的迷宫图(A4横板…

3D DRAM在2025年来袭

4月1日消息,据半导体工程报道,在行业大会Memcon 2024上,三星电子宣布其计划成为首家在2025年后步入3D DRAM内存时代的行业领军者。随着DRAM内存行业在本十年后期将线宽压缩至低于10纳米,现有的设计解决方案在如此精细的尺度上难以…