当前位置: 首页 > news >正文

Redis基础教程(十七):Redis数据备份与恢复

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【Redis系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

文章目录

      • 引言
      • Redis 数据备份方式
        • RDB 快照(Redis Database Backup)
          • 命令与配置
          • 案例:定期自动备份
        • AOF 日志(Append Only File)
          • 命令与配置
          • 案例:AOF 日志优化与备份
      • 混合使用 RDB 与 AOF
      • Redis 数据恢复实践
        • RDB 恢复
        • AOF 恢复
      • 案例:灾难恢复演练
      • 结论

引言

在分布式系统和微服务架构中,Redis 以其高性能、低延迟的特点成为了许多应用的首选数据存储解决方案。然而,随着数据量的增长和业务复杂性的提升,数据安全和灾难恢复成为运维人员不可忽视的重要议题。本文将详细介绍 Redis 的数据备份与恢复机制,包括 RDB 快照、AOF 日志、以及混合使用策略,并通过具体案例展示如何在实际环境中实施有效的数据保护措施。

Redis 数据备份方式

RDB 快照(Redis Database Backup)

RDB 是 Redis 提供的一种快照式备份机制,它会在指定的时间点创建整个数据库的数据快照。RDB 文件包含了所有键值对的数据,在 Redis 重启时,可以快速加载 RDB 文件来恢复数据。

命令与配置
  • SAVE: 立即执行 RDB 快照。
  • BGSAVE: 在后台异步执行 RDB 快照,不会阻塞客户端请求。
  • CONFIG SET save <policy>: 配置 RDB 自动快照策略,如 CONFIG SET save "900 1 300 10 60 10000" 表示在900秒内如果有1个key变化,则执行快照;300秒内有10个key变化也执行快照;60秒内有10000个key变化同样执行快照。
案例:定期自动备份

假设我们有一台生产环境的 Redis 服务器,需要每天凌晨执行一次完整的数据备份,可以采用以下策略:

  1. 在 Redis 配置文件中设置自动快照策略:

    save ""
    
  2. 使用 cron 定时任务在凌晨执行 BGSAVE 命令:

    0 0 * * * redis-cli -h <host> -p <port> bgsave > /dev/null 2>&1
    

    这样,每天凌晨都会在 Redis 的数据目录生成最新的 RDB 文件。

AOF 日志(Append Only File)

AOF 是 Redis 的另一种持久化机制,它会记录所有写入操作的命令,当 Redis 重启时,可以通过重放 AOF 文件中的命令来恢复数据。

命令与配置
  • CONFIG SET appendonly yes: 开启 AOF 持久化。
  • CONFIG SET appendfsync <policy>: 设置 AOF 刷新策略,可选值有 alwayseverysecno
  • BGREWRITEAOF: 优化 AOF 文件,去除冗余命令。
案例:AOF 日志优化与备份

为了保证数据的安全性和性能,我们通常将 AOF 刷新策略设为 everysec,以每秒一次的频率同步数据至磁盘,同时定期执行 BGREWRITEAOF 来优化 AOF 文件。

此外,可以结合 AOF 日志的备份策略,例如,使用 rsync 或其他工具定期将 AOF 文件复制到远程服务器上,实现异地备份。

混合使用 RDB 与 AOF

RDB 和 AOF 各有优势和局限性,实际应用中,通常会结合使用两者,以达到最佳的数据保护效果。

  • RDB 适合全量数据恢复,速度快,占用磁盘空间少。
  • AOF 更适合增量数据恢复,可以提供更细粒度的数据保护,但文件体积大,恢复时间较长。

Redis 数据恢复实践

RDB 恢复

当 Redis 需要从 RDB 文件恢复数据时,只需在启动时指定 RDB 文件即可。如果 Redis 配置文件中已启用 RDB,那么在正常启动过程中会自动加载最新的 RDB 文件。

AOF 恢复

AOF 恢复相对简单,只要 AOF 功能已开启,Redis 在启动时会自动读取 AOF 文件并重放所有写入命令,从而恢复数据。

案例:灾难恢复演练

假设我们的主 Redis 实例发生硬件故障,需要从备份中恢复数据。我们有以下几种选择:

  1. 从 RDB 文件恢复:找到最近的 RDB 快照文件,使用该文件启动一个新的 Redis 实例。这种方法快速,但可能会丢失最后一次 RDB 备份后的数据更改。

  2. 从 AOF 文件恢复:如果 AOF 功能已启用,可以从最新的 AOF 文件恢复数据,这将提供更接近故障前的数据状态。但是,如果 AOF 文件很大,恢复过程可能比较耗时。

  3. 混合恢复:可以先使用 RDB 文件快速恢复大部分数据,然后应用 AOF 文件中自上次 RDB 快照以来的所有更改,以获得最完整的数据状态。

结论

在设计 Redis 的数据备份与恢复策略时,应综合考虑业务需求、数据安全性和系统性能。RDB 快照适合定期全量数据备份,而 AOF 日志则提供了更细粒度的数据保护。通过合理规划备份策略和定期进行灾难恢复演练,可以有效降低数据丢失的风险,保障业务连续性和数据完整性。


喜欢博主的同学,请给博主一丢丢打赏吧↓↓↓您的支持是我不断创作的最大动力哟!感谢您的支持哦😘😘😘
打赏下吧

💝💝💝如有需要请大家订阅我的专栏【Redis系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

Redis相关文章索引文章链接
Redis基础教程(一):redis配置Redis基础教程(一):redis配置
Redis基础教程(二):redis数据类型Redis基础教程(二):redis数据类型
Redis基础教程(三):redis命令Redis基础教程(三):redis命令
Redis基础教程(四):redis键(key)Redis基础教程(四):redis键(key)
Redis基础教程(五):string字符串Redis基础教程(五):string字符串
Redis基础教程(六):redis 哈希(Hash)Redis基础教程(六):redis 哈希(Hash)
Redis基础教程(七):redis列表(List)Redis基础教程(七):redis列表(List)
Redis基础教程(八):redis集合(Set)Redis基础教程(八):redis集合(Set)
Redis基础教程(九):redis有序集合Redis基础教程(九):redis有序集合
Redis基础教程(十):HyperLogLogRedis基础教程(十):HyperLogLog
Redis基础教程(十一):Redis 发布订阅Redis基础教程(十一):Redis 发布订阅
Redis基础教程(十二):Redis事务Redis基础教程(十二):Redis事务
Redis基础教程(十三):Redis lua脚本Redis基础教程(十三):Redis lua脚本
Redis基础教程(十四):Redis连接Redis基础教程(十四):Redis连接
Redis基础教程(十五):Redis GEO地理信息查询与管理Redis基础教程(十五):Redis GEO地理信息查询与管理
Redis基础教程(十六):Redis StreamRedis基础教程(十六):Redis Stream

❤️❤️❤️觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

相关文章:

Redis基础教程(十七):Redis数据备份与恢复

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…...

基于FPGA的千兆以太网设计(1)----大白话解释什么是以太网

1、什么是以太网? 还记得初学以太网的时候,我就被一大堆专业名词给整懵了:什么以太网,互联网,MAC,IP,局域网,万维网,网络分层模型等等等等。慢着!我学的不是以太网吗?怎么出来这么一大堆东西? 啊!以太网究竟是什么?别急,我接下来就尽量用通俗的大白话来给你解释…...

wordpress的restfull API使用教程,之如何用postman调试API,以便能使用vue等前端框架开发主题

文章目录 API开发手册在postman中调试这里以 post 一篇文章为例&#xff0c;讲解如何调试&#xff1a; 步骤 1&#xff1a;生成应用密码步骤 2&#xff1a;配置Postman步骤 3&#xff1a;创建文章 参考链接 API开发手册 官方API手册&#xff1a;https://developer.wordpress.o…...

刷题刷题刷题

P1123 取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a; 从1,1开始dfs&#xff0c;若行数x>n则立马刷新最大值退出搜索&#xff0c;若y>m则进入下一行从第一列开始搜索即x1,y1&#xff0c;对当前的搜索点x,y的八个方向进行1,因为不能相邻 AC:…...

【Spring Boot】统一异常处理

目录 统一异常处理一. 概念二. 全局异常处理三. 处理特定异常 统一异常处理 一. 概念 其实统一异常是运用了AOP&#xff08;对某一类事情的集中处理&#xff09;的思维&#xff0c;简单概括就是在我们进行前后端数据交互的时候&#xff0c;抛出的任何的异常都能够自动捕获然后…...

java —— tomcat 部署项目

一、通过 war 包部署 1、将项目导出为 war 包&#xff1b; 2、将 war 包放置在 tomcat 目录下的 webapps 文件夹下&#xff0c;该 war 包稍时便自动解析为项目文件夹&#xff1b; 3、启动 tomcat 的 /bin 目录下的 startup.bat 文件&#xff0c;此时即可从浏览器访问项目首页…...

数据库的优点和缺点分别是什么

数据库作为数据存储和管理的核心组件&#xff0c;具有一系列显著的优点&#xff0c;同时也存在一些潜在的缺点。以下是对数据库优点和缺点的详细分析&#xff1a; 数据库的优点 数据一致性&#xff1a;数据库通过事务管理、锁机制、并发控制等技术手段&#xff0c;确保多个用户…...

考研数学暑期规划|50天吃透1000+660!

1000660这个组合当然可以 只不过1000的难度并不适合大多数人&#xff0c;很多同学跟的是张宇老师&#xff0c;但是最后却因为张宇1000题太难而改用其他的习题册比如880或者严选题之类的 当然&#xff0c;如果你的目标分数是120&#xff0c;可以去做1000题&#xff0c;因为100…...

GPT-5 一年半后发布?我们可能所受影响与应用领域

前言&#xff1a; IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。此外&#xff0c;穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述…...

CSS上下悬浮特效

要实现一个上下悬浮的特效&#xff0c;可以使用CSS的keyframes规则和动画属性。以下是一个简单的示例&#xff1a; 代码示例 /* 定义一个名为floating的动画 */ keyframes floating {0% {transform: translateY(0); /* 初始位置 */}50% {transform: translateY(-4px); /* 向上…...

Knife4j的原理及应用详解(三)

本系列文章简介&#xff1a; 在当今快速发展的软件开发领域&#xff0c;API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;作为不同软件应用之间通信的桥梁&#xff0c;其重要性日益凸显。随着微服务架构的兴起&#xff0c;API的数量…...

Android约束布局的概念与属性(1)

目录 1&#xff0e;相对定位约束2&#xff0e;居中和偏移约束 约束布局&#xff08;ConstraintLayout&#xff09;是当前Android Studio默认的布局方式&#xff0c;也是最灵活的一种布局方式。约束布局推荐使用所见即所得的模式进行布局&#xff0c;约束布局的大部分布局可以通…...

阿里巴巴开源自然语音交互框架;在抱抱脸上使用LivePortrait;58种提示技术的工具库

✨ 1: FunAudioLLM FunAudioLLM是一个为人类和大型语言模型&#xff08;LLMs&#xff09;之间自然语音交互打造的语音理解和生成基础框架。 FunAudioLLM 是阿里巴巴集团Tongyi SpeechTeam推出的用于增强人类与大语言模型&#xff08;LLM&#xff09;自然语音交互的框架。该框…...

《算法笔记》总结No.5——递归

一.分而治之 将原问题划分为若干个规模较小而结构与原问题相同或相似的子问题&#xff0c;然后分别解决这些子问题&#xff0c;最后合并子问题的解&#xff0c;即可得到原问题的解&#xff0c;步骤抽象如下&#xff1a; 分解&#xff1a;将原问题分解为若干子问题解决&#x…...

鸿蒙小练习

bean对象 export class BannerImage{id:numberurl:stringtargetUrl:stringproductId:numberconstructor(id: number, url: string, targetUrl: string, productId: number) {this.id idthis.url urlthis.targetUrl targetUrlthis.productId productId} }export class d…...

谷粒商城-个人笔记(集群部署篇二)

前言 ​学习视频&#xff1a;​Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强​学习文档&#xff1a; 谷粒商城-个人笔记(基础篇一)谷粒商城-个人笔记(基础篇二)谷粒商城-个人笔记(基础篇三)谷粒商城-个人笔记(高级篇一)谷粒商城-个…...

Python面试题-7

21. 请解释Python中的元组。 Python中的元组&#xff08;Tuple&#xff09;是一种内置的数据结构&#xff0c;它有如下特点&#xff1a; 有序性&#xff1a;元组中的元素是有序的&#xff0c;每个元素都有一个索引&#xff0c;索引从0开始。不可变性&#xff1a;一旦元组被创…...

微信⼩程序的电影推荐系统-计算机毕业设计源码76756

摘 要 随着互联网的普及和移动互联网的发展&#xff0c;人们对于获取信息的便捷性和高效性要求越来越高。电影作为一种受众广泛喜爱的娱乐方式&#xff0c;电影推荐系统的出现为用户提供了更加个性化和精准的电影推荐服务。微信小程序作为一种轻量级应用形式&#xff0c;在用…...

理解与解读李彦宏在2024世界人工智能大会的发言:应用优先于技术

2024年7月4日&#xff0c;世界人工智能大会暨人工智能全球治理高级别会议在上海世博中心举行。百度创始人、董事长兼首席执行官李彦宏在产业发展主论坛上提出了一个引人深思的观点&#xff1a;“大家不要卷模型&#xff0c;要卷应用&#xff01;”他强调了一个重要的观点&#…...

数字化打破传统,引领企业跨界经营与行业生态盈利

在当今数字化时代&#xff0c;传统的赚货差思路正面临着巨大的挑战。然而&#xff0c;数字化的崛起为企业提供了突破传统束缚的机会&#xff0c;促使其转向跨界经营&#xff0c;并通过行业生态经营获取利润。 首先&#xff0c;数字化打破了传统赚货差思路的局限性。以往&…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...