redis两种持久化方式的优缺点是什么

技术redis两种持久化方式的优缺点是什么这篇文章给大家分享的是有关redis两种持久化方式的优缺点是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 redis

本文是关于redis的两种持久性方法的优缺点。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。

Redis:坚持的两种方式

RDB持久性可以在指定的时间间隔内生成数据集的时间点快照。

AOF持久地记录服务器执行的所有写操作命令,当服务器启动时,通过重新执行这些命令来恢复数据集。所有的AOF文件都以redis协议的格式保存,新的命令将被附加到文件的末尾。redis还可以在后台重写AOF文件,文件大小不会超过保存数据集状态所需的实际大小。

Redis也可以同时使用AOF持久性和RDB持久性。在这种情况下,当redis重新启动时,它将使用AOF文件以有限的方式恢复数据集,因为AOF文件保存的数据集通常比RDB文件保存的数据集更完整。

RDB的优势

1.RDB是一个非常紧凑的文件,它保存了Redis在某个时间点的数据集。这种文件非常适合备份:例如,您可以在过去24小时内每小时备份一个RDB文件,也可以在每个月的每一天备份一个RDB文件。这样,即使遇到问题,也可以随时将数据集还原到不同的版本。

2.RDB非常适合灾难恢复:它只有一个文件,内容非常紧凑,所以可以传输到其他数据中心或亚马逊S3(加密后)。

3.RDB可以最大化Redis的性能:保存RDB文件时,父进程唯一要做的就是分叉出一个子进程,然后这个子进程将处理所有下一步的保存工作,而父进程不需要执行任何磁盘I/O操作。

4.RDB恢复大型数据集的速度比AOF快。

RDB的缺点

1.如果您需要尽量避免在服务器出现故障时丢失数据,那么RDB不适合您。虽然Redis允许您设置不同的保存点来控制保存RDB文件的频率,但这并不是一个容易的操作,因为RDB文件需要保存整个数据集的状态。因此,您可以至少每5分钟保存一次RDB文件。在这种情况下,如果停机,您可能会丢失几分钟的数据。

每次保存RDB时,Redis都必须分叉出一个子过程,这个子过程将执行实际的持久性工作。当数据集庞大时,fork()可能非常耗时,导致服务器在某毫秒内停止处理客户端;如果数据集很大,CPU时间很紧,停止时间甚至可能长达一整秒。虽然AOF重写也需要fork(),但无论AOF重写的执行间隔多长,都不会丢失数据持久性。

AOF的优势

使用AOF持久性将使Redis更加持久:您可以设置不同的fsync策略,如无fsync、每秒一次fsync或每次执行写命令时fsync。AOF的默认策略是每秒一次fsync。在这种配置下,Redis仍然可以保持良好的性能,即使发生宕机,最多也只会丢失一秒钟的数据(fsync将在后台线程中执行,因此主线程可以继续努力处理命令请求)。

AOF文件是一个仅附加的日志文件,因此不需要寻找来写入AOF文件。即使日志由于某些原因包含不完整的命令(如写入时磁盘已满、写入时停止等)。),redis-check-aof工具可以轻松解决这个问题。

当AOF文件的卷变得太大时,Redis可以在后台自动重写AOF:重写的新AOF文件包含恢复当前数据集所需的最小命令集。整个重写操作是绝对安全的,因为Redis在创建新的AOF文件的过程中会继续向现有的AOF文件追加命令,即使重写过程停止,现有的AOF文件也不会丢失。一旦创建了新的AOF文件,Redis将从旧的AOF文件切换到新的AOF文件,并开始追加新的AOF文件。

AOF文件将所有对数据库的写操作有序地保留下来,这些写操作是以Redis协议的格式存储的,所以AOF文件的内容非常容易被人们读取,也很容易解析文件。导出AOF文件也很简单:例如,如果您不小心执行了Flushal命令,但只要AOF文件没有被重写,只需停止服务器,删除AOF文件末尾的Flushal命令,然后重新启动Redis,将数据集恢复到Flushal执行之前的状态。

AOF的缺点

对于同一数据集,AOF文件的容量通常大于RDB文件。

根据fsync使用的策略,AOF可能比RDB慢。一般来说,每秒fs

ync 的性能依然非常高, 而关闭 fsync 可以让 AOF 的速度和 RDB 一样快, 即使在高负荷之下也是如此。 不过在处理巨大的写入载入时,RDB 可以提供更有保证的最大延迟时间(latency)。

AOF 在过去曾经发生过这样的 bug : 因为个别命令的原因,导致 AOF 文件在重新载入时,无法将数据集恢复成保存时的原样。 (举个例子,阻塞命令 BRPOPLPUSH 就曾经引起过这样的 bug 。) 测试套件里为这种情况添加了测试: 它们会自动生成随机的、复杂的数据集, 并通过重新载入这些数据来确保一切正常。 虽然这种 bug 在 AOF 文件中并不常见, 但是对比来说, RDB 几乎是不可能出现这种 bug 的.

感谢各位的阅读!关于“redis两种持久化方式的优缺点是什么”这篇文章就分享到这里了,希望

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

(0)

相关推荐

  • 如何解决云数据库MongoDB运行变慢问题

    技术如何解决云数据库MongoDB运行变慢问题这篇文章给大家介绍如何解决云数据库MongoDB运行变慢问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。阿里云数据库小分队破解了致使云数据库Mongo

    攻略 2021年11月4日
  • 查看docker容器停止原因(docker容器网络异常怎么办)

    技术docker容器时区错误问题该怎么解决docker容器时区错误问题该怎么解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景利用node-schedu

    攻略 2021年12月13日
  • 一石等于多少斤,李时珍时代一石是多少斤?

    技术一石等于多少斤,李时珍时代一石是多少斤?在古代一石等于多少斤,“石”作为计量单位,有三种:1.容量单位,十斗为一石 [dan,Chinese unit of dry measure]十斗为一石。——《说苑·辨物》关石

    生活 2021年10月25日
  • 火花塞清洗,汽车火花塞多久清理一次

    技术火花塞清洗,汽车火花塞多久清理一次质信车服——保障品质火花塞清洗,坚守诚信。本文观点:火花塞不需要清洗,只需要更换。首先,火花塞属于常用保养件,是有使用寿命的,到了时限就要更换,平时只要车辆感觉没什么异常,比如油耗增

    生活 2021年10月23日
  • 怎么提高下载速度,如何让电脑下载速度变得更快

    技术怎么提高下载速度,如何让电脑下载速度变得更快如题所述如何让下载速度变快怎么提高下载速度?在电脑日常的使用过程中,下载文件,往往会遇到下载缓慢,或突然中断的现象
    怎么怎样才能提高电脑的下载速度?
    首先,最基本的就是,网

    生活 2021年10月28日
  • 分数解方程,5年级分数解方程该怎样做

    技术分数解方程,5年级分数解方程该怎样做一分数解方程、可以根据等式的性质来解方程。1.等式性质一:等式两边都加上(或减去)同一个数,等式仍然成立。比如: x+5=15
    解:x+5 —5=15—5
    x=10
    2.等式性质

    生活 2021年10月29日