https://www.cnblogs.com/yzh-blog/p/11670762.html?utm_source=tuicool&utm_medium=referral
持久化的目的主要是做灾难恢复,数据恢复。由于Redis的数据全都放在内存里面,如果Redis挂了,没有配置持久化的话,重启的时候数据会全部丢失。
突然间,大量的请求过来,缓存全都无法命中,造成缓存雪崩,mysql无法承载大量的请求,造成整个系统崩溃。如果把Redis持久化做好,即使Redis故障了,也能够立即重启,对外提供服务。
Redis持久化分为两种:
RDB持久化: 在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储 。
AOF持久化: AOF 机制对每条写入命令作为日志,以 append-only 的模式写入一个日志文件中,在 redis 重启的时候,可以通过回放 AOF 日志中的写入指令来重新构建整个数据集。
通过RDB和AOF,都可以Redis内存中的数据持久化到磁盘中,也可以被分到其他地方,比如阿里云等。如果Redis挂了,可以从磁盘或者阿里云等地方拷贝数据到Redis中,重启Redis,Redis就会自动根据文件来重构数据。
如果同时使用RDB和AOF 两种持久化机制,那么在 redis 重启的时候,会使用 AOF 来重新构建数据,因为 AOF 中的数据更加完整。
RDB持久化的配置:
Redis会将数据集的快照dump到dump.r