Redis中的两种持久化方式是什么

技术Redis中的两种持久化方式是什么本篇内容主要讲解“Redis中的两种持久化方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis中的两种持久化方式是什么”吧

本文主要讲解“Redis中坚持的两种方式是什么”,感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你去学习“Redis中坚持的两种方式是什么?”!

Redis中的两种持久化方式是什么

Redis的两种持久化方式

众所周知,Redis为AOF和RDB提供了持久性,所以我们简单回顾一下。

RDB持久化

RDB执着,就是把当前时间点的数据库的状态保存到磁盘中,又称快照持久化.

RDB可以手动触发,也可以根据服务器配置定期执行。

RDB生成的文件是一个经过压缩的二进制文件,通过它数据库可以是还原到该时间点的状态.

Redis提供了一个前台RDB持久性命令SAVE和一个后台RDB持久性命令BGSAVE。前台执行时,Redis的其他命令会被阻塞,而后台执行时,Redis可以继续处理客户端的命令请求。

在RDB二进制文件中,存储了键值对的数据,并采用了压缩的自定义编码,并带有验证。它可以通过od命令转换成可读的。

在主从复制中,RDB文件用于初始完全复制。

【相关推荐:Redis视频教程】

AOF持久化

AOF持久性,全称是阿彭Only File,意思是一种附加的持久性模式,其中保存的是写命令而不是数据。

AOF持久性过程分为三个步骤:命令追加、文件写入和文件同步。

命令追加:每次Redis服务器执行写命令时,都会以aof协议格式将写命令追加到服务器状态的aof_buf缓冲区的末尾。

Write:在Redis中,在结束事件循环之前,将调用flushAppendOnlyFile函数将aof_buf缓冲区中的内容写入aof文件。

文件同步:同步同步是指文件写入操作系统缓冲区时是否直接同步到磁盘。通过配置,可以选择三种同步模式:立即同步、每秒同步、不主动同步由操作系统控制。文件输入输出缓冲:https://www.litreily.top/2018/10/25/io-cache/.

Redis优先使用AOF文件来恢复数据。

AOF文件比RDB文件大,因为它存储命令并且没有压缩。

BGREWRITEAOF可以定期重写AOF文件,以减少重复命令、无效命令、合并命令等。

AOF文件支持后台重写,并以fork子进程的形式实现。子进程拥有服务器进程数据的副本,不使用锁也能保证数据安全。此外,采用AOF重写缓冲区来解决数据不一致的问题。

两种持久化分别的优缺点

RDB的优点

文件很小,适合复制以备冷备用。

备份恢复比AOF快。

00-1010:许多数据丢失。

Fork子进程做BGSAVE,会消耗一些内存资源。

00-1010减少数据丢失。

添加写缓冲区,无需寻址,速度快。

只追加,也不需要做磁盘寻址,效率高。

00-1010档体积庞大。

每次aof需要写aof_buf的时候,QPS都会在AOF持久性开启后稍微降低。

00-1010经过以上的回顾,我们可以看到RDB明显不同于AOF的执着。

存储内容:RDB存储某一时间点的数据;AOF存储执行的写命令。

文件大小:RDB文件小;AOF档案很大。

写作模式:RDB可以采用前景/背景写作模式;AOF使用的方法是,每次执行写命令时,命令都存储在缓冲区中,并且可以定期重写。

数据丢失:从停机到最后一次RDB同步,RDB丢失了所有数据;根据输入/输出缓冲区配置的刷新模式,AOF在1秒或几秒内不会丢失或丢失数据。

根据这些比较,我们可以看到RDB持久化更适合保存一个时间点的数据,在主从复制或者数据全量异地灾备时,拷贝到其他地方AOF持久化由于丢失数据较少,比较适合作为本地备份,在Reids挂掉重启时作为故障恢复.这就是我所理解的,为什么Redis需要两种持久化方式.

至此,相信大家对“Redis中坚持的两种方式是什么”有了更深的理解,那么就来做一些实际的工作吧!这是网站。更多相关内容,可以进入相关渠道查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/47492.html

(0)

相关推荐

  • MySQL数据分析怎么解决

    技术MySQL数据分析怎么解决本篇内容主要讲解“MySQL数据分析怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据分析怎么解决”吧!作为最为流行的开源数据

    攻略 2021年12月3日
  • JAVA中Throw和throws的区别有哪些

    技术JAVA中Throw和throws的区别有哪些本篇内容主要讲解“JAVA中Throw和throws的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA中Th

    攻略 2021年11月20日
  • Python相对导入报错怎么解决

    技术Python相对导入报错怎么解决本篇内容主要讲解“Python相对导入报错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python相对导入报错怎么解决”吧!相对

    攻略 2021年11月25日
  • 如何进行VSFTP+MySQL虚拟用户配置

    技术如何进行VSFTP+MySQL虚拟用户配置本篇文章为大家展示了如何进行VSFTP+MySQL虚拟用户配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  VSFTPD是一种在

    攻略 2021年11月20日
  • 两个二声在一起怎么读,两个二声叠字连读比如妤妤怎么读

    技术两个二声在一起怎么读,两个二声叠字连读比如妤妤怎么读谢邀两个二声在一起怎么读。联绵字是从语义上来分析的,一个双字词不能被拆分为两个单字词,那么这个词的两个字就是联绵字。比如蛤蟆,不能被拆分为蛤和蟆,蜈蚣,不能拆为蜈和

    生活 2021年10月22日
  • PostgreSQL中make_rel_from_joinlist函数分析

    技术PostgreSQL中make_rel_from_joinlist函数分析这篇文章主要介绍“PostgreSQL中make_rel_from_joinlist函数分析”,在日常操作中,相信很多人在PostgreSQL

    攻略 2021年11月10日