• Redis持久化


    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快照是个好主意。

  • 相关阅读:
    Pet Shop 4.0 详细解析(转) 沧海一粟
    如何制作Bat批处理文件 沧海一粟
    iOS开发Icon图标设置 (转) 沧海一粟
    Android金背大刀之ToggleButton之稍息立正
    Android碧水剑之DatePickerDialog、TimePickerDialog之岁月如梭
    平衡边界作业算法并发仿真测试基于三层架构的Web系统的基准性能
    Android鸳鸯刀之DatePicker、TimePicker之明年今日
    Android应用性能优化整体策略
    Android应用开发之性能测试之TraceView
    平衡边界作业算法并发仿真测试网络存储系统的响应时间
  • 原文地址:https://www.cnblogs.com/cjsblog/p/9554771.html
Copyright © 2020-2023  润新知