Redis的高性能是因为其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不失落,须要将数据从内存中同步到硬盘中,这一过程就是长久化。Redis反对两种形式的长久化,一种是RDB形式,一种是AOF形式。能够独自应用其中一种或将二者联合应用。
RDB长久化机制
RDB长久化是指在指定的工夫距离内将内存中的数据集 快照 写入磁盘。
这种形式是就是将内存中数据以快照的形式写入到二进制文件中,默认的文件名为dump.rdb。 这种形式是默认曾经开启了,不须要配置.
AOF长久化机制
AOF长久化机制会将每一个收到的写命令都通过write函数追加到文件中,默认的文件名是appendonly.aof。 这种形式默认是没有开启的,要应用时候须要配置.
RDB长久化机制优缺点
长处
RDB 是一个十分紧凑(compact)的文件,它保留了 Redis 在某个工夫点上的数据集。 这种文件非常适合用于进行备份
RDB 在复原大数据集时的速度比 AOF 的复原速度要快(因为其文件要比AOF的小)
DB的性能要比AOF更好
毛病
RDB的长久化不够及时,可能会存在数据失落
RDB长久化时如果文件过大可能会造成服务器的阻塞,进行客户端申请
AOF长久化机制优缺点:
长处
AOF的持久性更加的持久(能够每秒 或 每次操作保留一次)
AOF 文件有序地保留了对数据库执行的所有写入操作, 这些写入操作以 Redis 协定的格局保留, 因而 AOF 文件的内容非常容易被人读懂, 对文件进行剖析(parse)也很轻松。
AOF是增量操作
毛病
对于雷同的数据集来说,AOF 文件的体积通常要大于 RDB 文件的体积
依据所应用的 fsync 策略,AOF 的速度可能会慢于 RDB.
抉择:
如果你十分关怀你的数据, 但依然能够接受数分钟以内的数据失落,抉择RDB 长久化。
如果对数据的完整性要求比拟高, 抉择AOF