rdb和aof的区别为:形式不同、启动效率不同、安全性不同。
一、形式不同
1、rdb:rdb在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
2、aof:aof以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
二、启动效率不同
1、rdb:通过fork子进程来协助完成数据持久化工作的,因此,如果当数据集较大时,可能会导致整个服务器停止服务几百毫秒,甚至是1秒钟。
2、aof:由子进程完成这些持久化的工作,可以极大地避免服务进程执行IO操作。如果数据集很大,aof的启动效率会更高。
三、安全性不同
1、rdb:系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。
2、aof:由于该机制对日志文件的写入操作采用的是append模式,因此在写入过程中即使出现宕机现象,也不会破坏日志文件中已经存在的内容。
rdb:
不适用于大规模数据: 在处理大规模数据时,生成 RDB 文件可能会导致较长时间的阻塞,影响性能。在某些情况下,阻塞时间可能会变得不可接受。
======
dump.rdb是快照:
删除后,只要触发又是快照。
aof文件可以打开,记录操作:
如果删除aof文件应该需要重启,否则不会继续记录。--》可能是aof文件生成在redis开启时。