rdb与redis持久性aof的区别
Redis中的数据储存在计算机内存中。如果我们不配置,重启Redis后数据会丢失。这里我们需要Redis中的持久化技术,将数据存储在磁盘中,重启Redis后仍然可以从磁盘中获取数据,从而达到持久化的效果。
RDB和AOF有什么不同?
RDB持久性是在指定的时间间隔内将内存中数据集的快照写入磁盘。实际操作过程是有一个fork子过程,先将数据集写入一个临时文件,写入成功后再替换上一个文件,用二进制压缩存储。
AOF的持久性是以日志的形式记录服务器处理的每一次写入和删除操作,查询操作不会被记录,而是以文本的形式记录,可以打开文件查看详细的操作记录。
RDB的优点是速度更快,而且存储的是二进制文件,传输起来更方便。缺点是RDB不能保证数据的绝对安全,有时候甚至1秒都会造成很大的数据丢失。
AOF的优势是比RDB安全,一般不会有数据丢失。即使有数量,也不会太大。当然,官方的建议是同时开放AOF和RDB;缺点是AOF的持久化速度比RDB慢,而且存储的是文本文件,后期会比较大,传输比较困难。
需要注意的是,在重新启动Redis之后,需要加载一个持久文件,并且将只选择AOF文件。如果先启动RDB,再启动AOF,RDB先执行持久化,RDB文件中的内容将被AOF覆盖。