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)

相关推荐

  • 数据库中关联子查询和非关联子查询有什么区别

    技术数据库中关联子查询和非关联子查询有什么区别本篇内容主要讲解“数据库中关联子查询和非关联子查询有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库中关联子查询和非

    攻略 2021年11月9日
  • 30的倍数有哪些,30以内5的倍数有哪些

    技术30的倍数有哪些,30以内5的倍数有哪些30以内3的倍数3 6 9 12 15 18 21 24 27 30 30以内5的倍数5 10 15 20 25 3030以内3和5的公倍数15 30倍数 ①一个整数能够被另

    生活 2021年10月26日
  • sqlite和mysql的区别有哪些

    技术sqlite和mysql的区别有哪些这篇文章主要为大家展示了“sqlite和mysql的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sqlite和mysql的

    攻略 2021年12月2日
  • 加拿大动物,加拿大的代表动物是什么

    技术加拿大动物,加拿大的代表动物是什么加拿大的国兽,海狸(英语叫BEAVER),也叫河狸,它是一种躯体肥胖的啮齿类动物,外型酷似大老鼠。海狸身上有两宝,一种是用于制作香水的原料,属于海狸性腺分泌的液体;另一种是海狸油光水

    生活 2021年10月27日
  • 中药蜜丸的制作方法,中药密丸的制作方法谁知道呀?

    技术中药蜜丸的制作方法,中药密丸的制作方法谁知道呀?蜜丸制作方法中药蜜丸的制作方法: 1、蜂蜜用量:一般药粉与炼蜜的比例是10:3,炼蜜与水的比例为1:3。药粉的粘性的大小不同改变蜜水浓度与用蜜量。
    2、制作步骤:

    生活 2021年10月29日
  • 香港KVM云服务器有哪些优势

    技术香港KVM云服务器有哪些优势使用云服务器的用户经常会对云服务商的提供的参数有一些不了解的地方例如服务器采用的虚拟化技术比较少见的点,一般来说相比价格更便宜的openvz技术,基于KVM的云服务器显然价格更高,那么这些

    礼包 2021年12月8日