加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Redis持久化

发布时间:2020-12-16 04:37:03 所属栏目:安全 来源:网络整理
导读:Redis提供了不同的持久化选项: RDB持久化,数据集的时间点快照 AOF持久化,服务器收到的每一个写操作 可以同时使用AOF和RDB。在这种情况下,当Redis重启的以后,AOF将用于重新构建原始数据集,因为它保证是最完整的数据。 RDB的优点: RDB是数据的时间点快

Redis提供了不同的持久化选项:

  • RDB持久化,数据集的时间点快照
  • AOF持久化,服务器收到的每一个写操作
  • 可以同时使用AOF和RDB。在这种情况下,当Redis重启的以后,AOF将用于重新构建原始数据集,因为它保证是最完整的数据。

RDB的优点:

  • RDB是数据的时间点快照。对于备份而言,RDB文件是完美的。你可能想要归档最近的24小时内每个小时的RDB文件,并且每个归档保存30天。这允许你再灾难发生的时候开业轻松地恢复数据集到不同版本。
  • RDB对于灾难恢复非常好,因为一个紧凑的文件可以传输到远程数据中心
  • RDB最大化了Redis的性能,因为Redis父进程为了持久化需要做的唯一工作就是分配一个子进程,而子进程可以完成所有的工作。
  • 与AOF相比,RDB允许使用大数据集更快地重新启动。

RDB的不足:

  • 如果你希望当Redis停止工作的时候能把数据丢失减少到最小,那么RDB不是一个好主意。假设你设置每5分钟创建一个RDB快照,那么当Redis非正常退出是,你可能会丢失最近几分钟的数据。
  • 为了持久化到磁盘,RDB需要fork()一个子进程。如果数据很大,fork()可能会很耗时,如果数据非常大,CPU性能不太好,那么可能在几毫秒甚至一秒内停止为客户端提供服务。AOF也许fork(),但是你可以调整写日志的频率,而不需要在持久性上进行权衡(

(小结:
RDB的优点:
  1、对于备份很方便的,将来可以快速重启,并且可以恢复到不同的版本
  2、数据可以很方便的传输到数据中心
RDB的缺点:
  1、如果突然宕机,可能会丢失一部分数据
  2、如果数据很大,fork()操作会耗时很长,严重的情况下可能短时间内无法为客户端提供服务

AOF的优点:

  • 你可以有不同的fsync策略:完全不fsync,每秒fsync,每个查询都fsync。fsync的默认策略是每秒执行一次,但是你最多只会丢失一秒钟内的写操作。
  • AOF日志是追加的,不用担心断电的问题,即使日志写到一半,使用redis-check-aof工具也可以轻松修复。
  • 当AOF文件变得太多时,Redis可以自动重写AOF
  • AOF以一种易于理解和解析的格式,一个接一个地包含所有操作的日志。你可以很容易的导出一个AOF文件。

AOF的不足:

  • 对于相同的数据,AOF文件通常比RDB文件更大
  • AOF可能会比RDB更慢,当然这取决于fsync策略。一般而言,fsync设置为每秒性能是最高的。

AOF的优点:
  1、它保存的是写操作,写多少是多少,而RDB必须要写完整,写到一半的RDB是不能用的
  2、格式易于理解和解析
  3、文件过大时,可以自动重写AOF
AOF的缺点:
  1、对于相同的数据,AOF文件通常比RDB文件更大。因为AOF记录的是操作,而RDB记录的是数据,是快照

?

如果你非常关心你的数据,但是在发生灾难时仍然可以忍受几分钟的数据丢失,那么你可以只使用RDB。

有许多用户单独使用AOF,但我们不鼓励这样做,因为对于数据备份和快速重启来说,不停的地使用RDB快照是个好主意。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读