redis持久化的两种方式:RDB和AOF
目的
针对于内存数据丢失的情况,redis提供了两种数据持久化的机制。
RDB
RDB:将redis的数据通过服务器快照的方式以二进制存储在dump.rdb文件中。原理:定时fork一个子线程去将内存数据进行快照存储写入到RDB文件中,然后替换旧的RDB文件。主线程处理指令请求。
优点:可以快速恢复数据。缺点:因为内存数据写入RDB文件中总是周期性的,如果未触发下一次存储服务的时候宕机,那么就会造成数据丢失。
AOF
AOF:开启AOF之后,以一种日志的形式,redis每执行一条操作时都会追加到AOF缓冲区,然后再把AOF缓冲区的文件放入到AOF文件中去。
因为存放的是指令,数据量比较大,所以会执行AOF重写的操作,触发条件:AOF文件大小超过一定的容量,AOF其中指令重复压缩。
优点:数据不容易丢失。缺点:数据恢复的时间比较长,且文件比较大。