Redis 持久化配置,RDB和AOF方式配置说明

news2024/11/20 9:27:37

文章目录

    • 一、概述
    • 二、RDB 持久化方式配置
    • 三、AOF 持久化方式配置

如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件说明,Redis命令和数据类型说明。

一、概述

  • Redis 持久化是指将 Redis 数据存储到磁盘上,以便在 Redis 服务器重启后能够恢复数据的过程。Redis 提供了两种主要的持久化方式:

  • RDB 持久化(Redis Database)

    • RDB 持久化是将 Redis 数据以快照的形式保存到磁盘上的二进制文件。
    • RDB 文件是 Redis 在某个时间点上的数据快照,包含了所有数据的状态。
    • RDB 持久化适用于需要在特定时间点上备份数据或进行全量恢复的场景。
    • RDB 持久化使用 SAVE 或 BGSAVE 命令手动触发,也可以通过配置自动定期触发(查看Redis命令使用)。
  • AOF 持久化(Append-Only File)

    • AOF 持久化是将 Redis 的写操作以日志追加的方式记录到磁盘上的文件中。
    • AOF 文件是一个文本文件,记录了所有写操作的命令和参数
    • 通过重新执行 AOF 文件中的命令,可以还原出 Redis 数据的状态。
    • AOF 持久化适用于需要实时记录数据变更并保证最大数据安全性的场景。
    • AOF 持久化可以通过配置的方式实时记录命令,或者按一定的策略进行重写(AOF Rewrite)来压缩文件大小。
  • Redis 还提供了混合持久化的方式,即同时使用 RDB 持久化和 AOF 持久化。这种方式可以兼顾快速恢复和数据安全性。

  • Redis 还支持无持久化的模式,也就是不将数据持久化到磁盘,只保留在内存中。这种模式适用于对数据持久化要求不高或者仅用于缓存的场景。

在这里插入图片描述

二、RDB 持久化方式配置

  • 持久化原理

    • RDB持久化是Redis的一种快照持久化方式,它通过将内存中的数据快照写入磁盘文件,以便在需要时可以从磁盘文件还原数据
    • 优点是性能较高、恢复速度快、进行了数据压缩。
    • 缺点是实时性差,毕竟每次快照都有一定时间间隔。
  • 持久化配置

    • 基本语法:save
      • 表示间隔多久触发一次
      • 表示变化数达到多少触发一次
      • 两个条件必须同时满足才会触发RDB持久化
  • 打开RDB持久化

    • 在 redis.conf 配置文件中添加类似如下配置,即可打开Redis的RDB持久化,有关Redis更多配置请看这。
    # 这里表示当时间超过900秒且至少有1个key变化时触发RDB持久化
    save 900 1
    # 这里表示当时间超过300秒且至少有10个key变化时触发RDB持久化
    save 300 10
    # 这里表示当时间超过60秒且至少有10000个key变化时触发RDB持久化
    save 60 10000
    
  • 关闭RDB持久化

    • 将save设置为空值,或者直接删除save配置,如下:
    save ""	
    
  • 持久化其他配置

    • 这些配置也很关键,要准确配置
    • 持久文件目录如果不存在需手动创建
    # RDB 持久化文件名
    dbfilename dum.rdb
    # 持久化文件目录
    dir  /var/lib/redis/6379
    
    # 是否开启压缩
    rdbcompression yes
    # RDB文件校验位
    rdbchecksum yes
    
  • 检查RDB文件内容

    redis-check-rdb  dump.rdb
    

    [root@yiqifu-redis 6379]# redis-check-rdb dump.rdb
    [offset 0] Checking RDB file dump.rdb
    [offset 26] AUX FIELD redis-ver = ‘6.0.6’
    [offset 40] AUX FIELD redis-bits = ‘64’
    [offset 52] AUX FIELD ctime = ‘1697161255’
    [offset 67] AUX FIELD used-mem = ‘865296’
    [offset 83] AUX FIELD aof-preamble = ‘0’
    [offset 85] Selecting DB ID 0
    [offset 125] Checksum OK
    [offset 125] \o/ RDB looks OK! \o/
    [info] 3 keys read
    [info] 0 expires
    [info] 0 already expired

三、AOF 持久化方式配置

  • 持久化原理

    • 以追加(append)的方式将写操作追加到一个日志文件中,记录了Redis服务器接收的所有写命令,以便在需要时恢复数据。
    • 优点是实时性高,因为他是实时记录所有命令。
    • 缺点时实时记录会占用大量的空间,单纯的AOF恢复速度慢。所以一般与RDB结合使用。
  • 持久化配置

    • 基本语法:save
      • 表示间隔多久触发一次
      • 表示变化数达到多少触发一次
      • 两个条件必须同时满足才会触发RDB持久化
  • 打开AOF持久化(默认是关闭的)

    • 在 redis.conf 配置文件中添加类似如下配置,即可打开Redis的AOF持久化,有关Redis更多配置请看这。
    appendonly yes
    
  • 关闭AOF持久化

    appendonly no
    
  • 持久化其他配置

    • 这些配置也很关键,要准确配置
    • 持久文件目录如果不存在需手动创建
    # AOF 持久化文件名
    appendfilename "appendonly.aof"
    # 持久化文件目录
    dir  /var/lib/redis/6379
    
    # AOF 持久化级别(写入磁盘的速度)
    # 可配置为 alway=始终,everysec=每秒,no=根据系统缓冲区大小(4k)满flush决定。
    appendfsync everysec
    # 当在执行RDB持久化时,是否继续执行AOF持久化,默认是不执行
    no-appendfsync-on-rewrite no
    # 是否开启AOF和RDB混合模式
    aof-use-rdb-preamble yes
    
    # AOF 持久化自动重写触发条件配置,重写会对AOF文件进行压缩,如果开启混合模式会加入RDB方案。
    # 后续每次触发重写的条件是前一次触发重写后,再超过100%时触发重写
    auto-aof-rewrite-percentage 100
    # 开机后当aof文件达到64MB时会触发重写
    auto-aof-rewrite-min-size 64mb
    
    
  • 检查AOF文件内容

redis-check-aof appendonly.aof

[root@yiqifu-redis 6379]# redis-check-aof appendonly.aof
AOF analyzed: size=120, ok_up_to=120, diff=0
AOF is valid

  • AOF 持久化旧版文件内容解析(没有压缩之前通过 cat appendonly.aof 命令可以查看)

    • *数字:表示当前命令要取几行。如*表示取2行,*3表示取3行。
    • $数字:表示接下要取多个少字节。如$6表示取6个字节,$3表示取3个字节。
    • 安装*n和$n取出来就一条完整的命令。
    *2
    $6
    SELECT
    $1
    0
    *3
    $3
    set
    $3
    aaa
    $3
    111
    *3
    $3
    set
    $3
    bbb
    $3
    222
    

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

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

相关文章

KVM实验之动态迁移

前言 一台NFS(192.168.184.132) 一台KVM-a(192.168.184.133) 一台KVM-b(192.168.184.134) NFS配置: [rootlocalhost ~]# setenforce 0 //关闭selinux [rootlocalhost ~]# service iptables st…

python re 匹配所有字段名称相同的值

import retext {"code": 200,"message": "success","traceId": "da0b668c-4d67-44bf-907f-c072fc63839a","data": {"list": [{"articleId": 121862102,"title": "python 目录…

k8s 金丝雀发布与声明式管理

Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后&#xf…

用图说话——流程图进阶

目录 一、基本流程图 二、时序流程图 一、基本流程图 经常阅读歪果仁绘制的流程图,感觉比较规范,自己在工作中也尝试用他们思维来绘图,这是一个小栗子: 二、时序流程图 在进行Detail设计过程中,一般的绘图软件显得…

微信小程序笔记功能(富文本editor功能)开发

一、效果图展示 模拟器及pc 端效果图 手机端就不贴了 二、把官方示例copy到自己的项目传送门 三、改一改上传图片功能 insertImage() {const that thiswx.chooseImage({// count:1 一次选择图片的个数success: function (response) {// 多张图片上传response.tempFilePaths…

基于opencv的selenium滑动验证码的实现

这篇文章主要介绍了基于opencv的selenium滑动验证码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 基于selenium进行动作链 由于最近很多人聊到滑动验证码…

Python通过pyecharts对爬虫房地产数据进行数据可视化分析(一)

一、背景 对Python通过代理使用多线程爬取安居客二手房数据(二)中爬取的房地产数据进行数据分析与可视化展示 我们爬取到的房产数据,主要是武汉二手房的房源信息,主要包括了待售房源的户型、面积、朝向、楼层、建筑年份、小区名称…

图像去噪滤波算法汇总(Python)

前言 上篇文章:图像数据噪音种类以及Python生成对应噪音,汇总了常见的图片噪音以及噪音生成方法,主要用在数据增强上面,作为数据集填充的方式,可以避免模型过拟合。想要了解图像数据增强算法的可以去看本人所撰这篇文…

IO,库-10.24.25

库-10.24.25 一、概念 头文件&#xff1a;.h&#xff1a;函数声明&#xff0c;结构体定义&#xff0c;宏定义&#xff0c;外部引用&#xff0c;重定义&#xff0c;条件编译 #include <>:从系统路径&#xff08;/usr/include&#xff09;下查找 #include " "&am…

如何将Mysql数据库的表导出并导入到另外的架构

如何将Mysql数据库的表导出并导入到另外的架构 准备一、解决方法1.右键->导出->用mysqldump导出2.注意路径一般为&#xff1a;C:/Program Files/MySQL/MySQL Server 8.0/bin/mysqldump.exe和导出的sql文件位置3.右键->SQL脚本->运行SQL脚本4.找到SQL脚本并点击确定…

[moeCTF 2023] REV

逆向这东西&#xff0c;不太好说。 base64 这是个pyc文件&#xff08;python编译后的字节码文件&#xff09;&#xff0c;这东西可以直接用各种方法反编译。也可以不弄&#xff0c;必竟这应该签到级别的。用notepad打开&#xff0c;可以看到base64的编译和两个码表。显然猜是…

mac系统u盘启动盘制作教程,更新至macOS Sonoma 14

mac系统怎么制作装系统的u盘,如果您要在多台电脑上安装 macOS&#xff0c;而又不想每次都下载安装器&#xff0c;这时可引导安装器就会很有用。一起来看苹果电脑u盘启动盘制作教程吧。 Macos系统安装包合集包揽macos 10.15&#xff0c;macos 11和苹果最新系统等多个版本 1、A…

Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:

很惭愧&#xff0c;学了很多年才意识到&#xff0c;噢&#xff0c;原来这两个系统实现一些功能的时候会使用到不同的库&#xff0c;使用不同的函数。 那么&#xff0c;也会延伸出一些问题&#xff1a; 比如&#xff0c;如何实现版本的迁移。一个在Linux上运行的代码如何可以比…

Instant-NGP中的多分辨率哈希编码

Instant-NGP的出现&#xff0c;无疑给神经表达领域带来了新的生命力。可认为是NeRF诞生以来的关键里程碑了。首次让我们看到了秒级的重建、毫秒级的渲染的NeRF工作。 作为如此顶到爆的工作&#xff0c;Instant-NGP毫无疑问斩获SIGGRAPH 2022的最佳论文。虽然只是五篇最佳论文之…

微信公众号推送封面图制作:专业技巧大揭秘

在微信公众号推送中&#xff0c;一个吸引人的封面设计是吸引读者点击的重要因素。本文将指导你如何使用免费在线海报制作工具&#xff0c;如乔拓云&#xff0c;来制作一个适合节日的海报模板&#xff0c;并编辑文本、图片以及调整字体、颜色、布局等&#xff0c;最后导出并保存…

【Linux前篇 】VMWare虚拟机安装与环境配置及远程连接 —— windows版

目录 一、操作系统 1.1 什么是操作系统 1.2 常见操作系统 1.3 个人版本和服务器版本的区别 1.4 Linux的各个版本 二、VMWare 虚拟机安装配置流程 2.1 安装 2.2 配置虚拟网络编辑器 三、安装配置 Windows Server 2012 R2 3.1 创建虚拟机 3.2 安装 Windows Server 2012…

Linux文件I/O

下面的内容需要了解系统调用&#xff0c;可看下面的链接&#xff1a; 系统调用来龙去脉-CSDN博客 1.底层文件IO和标准IO 这里指的是操作系统提供的IO服务&#xff0c;不同于ANSI建立的标准IO。 底层IO和标准IO各自所使用的函数&#xff1a; 区别&#xff1a; 1.底层文件IO不…

TDesign设计系统全方位解析

随着互联网的发展和技术的不断更新和迭代&#xff0c;互联网产品类别的周期越来越短&#xff0c;用户需求也在不断提高。对于生产、设计和研究团队来说&#xff0c;有必要进行高效和持续的设计创新。腾讯“腾讯设计云”的研发帮助企业完成高效协作&#xff0c;提高设计开发效率…

SpringCloud学习:一【详细】

目录 服务架构演变 单体架构 分布式架构 分布式架构需要考虑的问题 微服务 架构比较 微服务技术对比 服务拆分注意事项 案例 服务远程调用 RestTemplate Eureka注册中心 RestTemplate存在的问题 服务调用考虑的问题 Eureka的作用 搭建EurekaServer 服务注册 …

分布式事务——CAP理论 解决分布式事务的思路 Seata组件初识 和 部署

前言 事务(TRANSACTION)是一个不可分割的逻辑单元&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体向系统提交&#xff0c;要么都执行、要么都不执行。 事务作为系统中必须考虑的问题&#xff0c;无论是在单体项目还是在分布式项目中都需要进行…