Redis持久化RDB和AOF

Redis持久化

Redis提供多种不同级别的持久化方式:一种是RDB,另一种是AOF。
RDB会根据配置的规则定时将内存中的数据持久化到硬盘上,AOF则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。
RDB持久化和AOF持久化之间的异同是非常重要的,以下几个小节将详细地介绍这这两种持久化功能,并对它们的相同和不同之处进行说明。

RDB持久化

RDB持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
RDB方式的持久化是通过快照的方式完成的。当符合某种规则时,会将内存中的数据全量生成一份副本存储到硬盘上,这个过程称作”快照”,Redis会在以下几种情况下对数据进行快照。

  1. 根据配置规则进行自动快照。
  2. 用户执行SAVE,BGSAVE命令。
  3. 执行FLUSHALL命令。
  4. 执行复制(replication)。

    执行快照场景

    根据配置自动快照,Redis允许用户自定义快照条件,当满足条件时自动执行快照,快照规则的配置方式如下。
    1
    2
    3
    save 900 1
    save 300 10
    save 60 10000

每个快照条件独占一行,他们之间是或(||)关系,只要满足任何一个就进行快照。上面配置save后的第一个参数T是时间,单位是秒,第二个参数M是更改的键的个数,含义是:当时间T内被更改的键的个数大于M时,自动进行快照。比如save 900 1的含义是15分钟内(900s)被更改的键的个数大于1时,自动进行快照操作。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×