iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Redis 持久化 RDB 与 AOF的执行过程
  • 521
分享到

Redis 持久化 RDB 与 AOF的执行过程

2024-04-02 19:04:59 521人浏览 独家记忆
摘要

目录前言一、RDB1. save 命令2. bgsave 命令3. 内部触发 RDB 场景4. RDB 参数配置5. RDB 缺点二、AOF1. 参数配置2. AOF 执行流程3.

前言

Redis 持久化支持两种方式 RDB 与 AOF,文章记录两者的执行过程与配置。

一、RDB

RDB 持久化是把当前进程数据生成快照保存到硬盘的过程,触发 RDB 持久化过程分为手动触发和自动触发。

1. save 命令

会堵塞当前 Redis 服务器,直到 RDB 结束为止,对数据量较大或者内存较大的实例,会堵塞较长时间,生产环境不建议使用。如果手动执行 save 命令,Redis 会记录下方日志

127.0.0.1:6379> save
OK

* DB saved on disk

2. bgsave 命令

Redis 进程执行 fork 操作创建子进程,RDB 持久化过程由子进程负责,完成后自动结束。阻塞只发生在 fork 阶段,一般时间很短。如果手动执行 bgsave 命令,Redis 会记录下方日志。

* Background saving started by pid 90338
* DB saved on disk
* RDB: 0 MB of memory used by copy-on-write
* Background saving terminated with success

bgsave 对 save 堵塞进行优化,Redis 内部涉及 RDB 操作都是由 bgsave 完成。

3. 内部触发 RDB 场景

  • 使用 save 相关配置,如 save m n 表示 m 秒内数据集存在 n 次修改时,触发一次 RDB;
  • 从节点执行全量复制操作,主节点自动执行 bgsave 生成 RDB 文件发送给从节点;
  • 执行 debug relad 重新加载 Redis 时,也会触发生产 RDB;
  • 默认情况下,执行 shutdown 关闭 Redis 时,如果没有开启 AOF 持久化功能,则会触发 RDB。

4. RDB 参数配置

通过设置 dir 可以配置 RDB 保存位置 dbfilename 可以设置文件名。

config set dir /opt/redis-5.0.12/backup
config set dbfilename myback.rdb

Redis 默认采用 LZF 算法对生成的RDB文件做压缩处理,压缩后的文件远远小于内存大小,默认开启,可以通过 rdbcompression 参数配置。

config set rdbcompression{yes|no}

压缩 RDB 虽然会消耗 CPU 但是可以大幅度减少文件体积,方便存储或通过网络发送给从节点。

5. RDB 缺点

RDB 方式数据没办法做到实时持久化/秒级持久化。因为 bgsave 每次运行都要执行 fork 操作创建子进程,属于重量级操作,频繁执行成本过高。

RDB文件使用特定二进制格式保存,Redis 版本演进过程中有多个格式的 RDB 版本,存在老版本 Redis 服务无法兼容新版 RDB 格式的问题。

二、AOF

AOF(appendonlyfile)持久化:以独立日志的方式记录每次写命令,重启时再重新执行 AOF 文件中的命令达到恢复数据的目的。AOF 的主要作用是解决了数据持久化的实时性,目前已经是 Redis 持久化的主流方式。

1. 参数配置


# 配置开启 AOF
config set appendonly yes
# 配置文件名,默认 appendonly.aof
config set appendfilename xxx.aof
# 存储位置配置,与 RDB 一样
config set dir /opt/redis-5.0.12/backup

2. AOF 执行流程

请添加图片描述

  1. 所有的命令都会追加到 aof_buf(缓冲区)中;
  2. AOF 缓冲区根据对应的策略向磁盘同步操作;
  3. 随着 AOF 文件越来越大,需要定期对 AOF 重写,达到压缩目的;
  4. 当 Redis 服务器重启时,可以加载AOF文件进行数据恢复。

3. 重写机制

手动触发:

bgrewriteaof

自动触发,根据下方两个参数设置自动触发机制:

auto-aof-rewrite-min-size
auto-aof-rewrite-percentage

到此这篇关于Redis 持久化 RDB 与 AOF的文章就介绍到这了,更多相关Redis 持久化 RDB 与 AOF内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Redis 持久化 RDB 与 AOF的执行过程

本文链接: https://www.lsjlt.com/news/156359.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis 持久化 RDB 与 AOF的执行过程
    目录前言一、RDB1. save 命令2. bgsave 命令3. 内部触发 RDB 场景4. RDB 参数配置5. RDB 缺点二、AOF1. 参数配置2. AOF 执行流程3. ...
    99+
    2024-04-02
  • Redis持 RDB与AOF的执行过程是怎么样的
    今天就跟大家聊聊有关Redis持 RDB与AOF的执行过程是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言Redis 持久化支持两种方式 RDB 与 AOF,文章记录两者...
    99+
    2023-06-25
  • 如何进行Redis持久化RDB和AOF的分析
    如何进行Redis持久化RDB和AOF的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Redis持久化方案Redis是内存数据库,数据都是...
    99+
    2024-04-02
  • Redis RDB与AOF持久化方式详细讲解
    目录1.RDB持久化1.1 RDB文件的保存1.2 RDB文件的载入1.3 RDB持久化时服务器的状态1.4 RDB持久化策略2.AOF持久化2.1 持久化的实现2.2 文件的载入与数据还原2.3 AOF文件的重写1.R...
    99+
    2022-11-22
    RedisRDB与AOF Redis持久化方式
  • 怎么掌握Redis持久化RDB和AOF
    本篇内容介绍了“怎么掌握Redis持久化RDB和AOF”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为...
    99+
    2024-04-02
  • Redis的持久化机制采用RDB还是AOF
    这篇文章主要讲解了“Redis的持久化机制采用RDB还是AOF”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis的持久化机制采用RDB还是AOF”吧!...
    99+
    2024-04-02
  • Redis中AOF与RDB持久化策略深入分析
    目录写在前面一、Redis为什么要持久化二、Redis的持久化方式2.1. AOF持久化(Append of file)2.1.1 fsync 系统调用2.1.2 AOF持久化策略2.1.3 aof_rewrite2.2...
    99+
    2022-11-28
    Redis持久化策略 RedisAOF RedisRDB
  • 图解Redis,谈谈Redis的持久化,RDB快照与AOF日志
    目录 专栏导读 一、RDB持久化 1、自动触发 2、手动触发 3、设置保存条件 4、加解密 5、R...
    99+
    2023-09-21
    redis 数据库 分布式
  • redis中RDB和AOF持久化的优缺点是什么
    小编给大家分享一下redis中RDB和AOF持久化的优缺点是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Redis 提供了 RDB 和 AOF 两种持久化方案:RDB:生成指定时间间...
    99+
    2024-04-02
  • Redis中RDB和AOF持久化模式缺陷是什么
    这篇文章主要介绍了Redis中RDB和AOF持久化模式缺陷是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、RDB持久化模式缺陷1、问...
    99+
    2024-04-02
  • GO怎么实现Redis的AOF持久化
    这篇文章主要介绍“GO怎么实现Redis的AOF持久化”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“GO怎么实现Redis的AOF持久化”文章能帮助大家解决问题。GO实现Redis的AOF持久化将用...
    99+
    2023-07-05
  • redis怎么执行持久化文件
    redis执行持久化文件的示例:RDB的持久化:# 时间策略save 900 1save 300 10save 60 10000# 文件名称dbfilename dump.rdb# 文件保存路径dir /home/work/app/redi...
    99+
    2024-04-02
  • Redis持久化与主从复制的实践
    为什么需要持久化 Redis是基于内存的NoSQL数据库,读写速度自然快,但内存是瞬时的,在redis服务关闭或重启之后,redis存放在内存的数据就会丢失,为了解决这个问题,red...
    99+
    2024-04-02
  • Redis 通过 RDB 方式进行数据备份与还原的方法
    目录IntroRedis 持久化RDB的优点RDB的缺点AOF 优点AOF 缺点备份还原Intro 有的时候我们需要对 Redis 的数据进行迁移,今天介绍一下通过 RDB(快照)文...
    99+
    2024-04-02
  • redis中的高可用与持久化怎么配置
    本篇内容主要讲解“redis中的高可用与持久化怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis中的高可用与持久化怎么配置”吧!一、Redis 高...
    99+
    2024-04-02
  • Redis持久化的运行机制和优缺点是什么
    Redis持久化的运行机制和优缺点是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言大家都知道Redis一个内存数据库,...
    99+
    2024-04-02
  • Redis中命令执行过程的示例分析
    这篇文章将为大家详细讲解有关Redis中命令执行过程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis 是怎么执行远程客户端发来的命令的Redis cli...
    99+
    2024-04-02
  • MySQL性能优化之一条SQL在MySQL中执行的过程详解
    目录一 MySQL的内部组件结构1.1 service层1.2 store层二 连接器三 分析器四 优化器五 执行器六 bin-log归档总结一 MySQL的内部组件结构 大体来说...
    99+
    2023-02-02
    mysql sql语句执行过程 简述SQL语句的执行顺序 数据库的sql执行过程
  • VMware安装Rocky Linux服务器系统并执行优化的详细过程
    目录前言创建虚拟机优化Rocky Linux安装常用工具修改主机名设置时区为东八区添加tailf命令镜像下载、域名解析、时间同步请点击 阿里云开源镜像站 前言 由于CentOS7 2...
    99+
    2024-04-02
  • 微信小程序上传头像的临时路径,持久化保存到服务器与数据库(nodejs后台开发)
    从微信小程序中返回的用户头像临时地址 http://tmp/H0GP7BW5HTQs846c0d9deef32d42f2203340efc4a5c3.jpeg 会失效,且只能一段时间内在微信访问,并且无法在公网访问用户头像临时地址avata...
    99+
    2023-08-31
    微信小程序 服务器 数据库 node.js 小程序 notepad++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作