Redis的持久化机制RDB与AOF

Redis的持久化即将内存中的数据同步到硬盘,主要包括两种方式RDB、AOF。

1.RDB

将内存中的数据以快照的方式写入到二进制文件dump.rdb,在redis.conf中可以设置发起快照保存的条件。在指定的时间内如果有超过指定数量的key被修改,则会发起快照保存。这种方式在数据的实时性上不高,在突然断电的情况下,可能会出现部分数据的丢失,即最后一次快照之后在内存中发生修改的数据。

Redis的持久化机制RDB与AOF_第1张图片

2.AOF

将Redis内存数据库中更改的数据都记录到指定的文件appendonly.aof。在redis.conf中可以进行写磁盘的相关设置。

在突然断电的情况下,由于在appendonly.aof中保存了最后一次写磁盘之后redis内存发生数据修改的指令,所以在这个Redis重启后,基本不会发生数据丢失,比RDB具有更好的数据安全性。

appendfsync always   接收到更改数据的命令,立即将其记录到appendonly.aof中,能保证数据持久化,数据完全不丢失,但效率相对最低

appendfsync everysec   每秒钟将redis内存数据修改的命令记录到appendonly.aof中,在性能和持久化上做了折中。因频繁执行磁盘操作,在仅存在单个Master执行写操作时,效率可能存在问题。但在多个Master执行写操作的Redis集群中,效率会提升。

appendfsync no  依赖于操作系统,因不会频繁执行磁盘操作而性能最好,但redis内存数据修改持久化没有保证,无法保证数据可靠性

Redis的持久化机制RDB与AOF_第2张图片

Redis的持久化机制RDB与AOF_第3张图片

重启redis,在redis.conf文件中dir指定的目录下,可以看到appendonly.aof

Redis的持久化机制RDB与AOF_第4张图片

Redis的持久化机制RDB与AOF_第5张图片





你可能感兴趣的:(nosql)