文章原创于公众号:程序猿周先森。本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号。
![e3bce8e9027a58a142bf15e8b0feaf11.png](https://i-blog.csdnimg.cn/blog_migrate/af47b36334c1c6be36b5335033d2142c.jpeg)
上一篇主要针对Redis的内存淘汰机制以及Redis容易引发的三大问题:缓存击穿、缓存穿透以及缓存雪崩进行了详细的讲解以及提供了业界常用的解决方案。本篇主要讲讲Redis的持久化机制,Redis受开发者欢迎的一大原因就是因为可持久化的特性。我们如何保证Redis宕机之后重启可以将数据进行恢复?所以一般情况下我们需要定时进行持久化将内存中的数据写入到硬盘中。而Redis中支持两种不同的持久化机制:RDB持久化以及AOF持久化。
![c0375c6830636fcc91e3c90d5ad6297c.png](https://i-blog.csdnimg.cn/blog_migrate/9c924811d3a5a94881aab285457725f8.jpeg)
快照持久化是一次全量备份,备份的是内存数据的二进制序列化格式。而AOF持久化是增量备份,记录的是内存数据修改的指令记录文本。所以AOF持久化生成的日志会随着运行时间变长而变得越来越臃肿,每次重启Redis都需要加载AOF日志进行指令重放,所以需要定期重写AOF日志进行瘦身操作。
快照持久化(RDB)
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,子进程