前面的 12 个章节对 Redis 的面试题做了一个系统的讲解,那么本文将对 Redis 的热门面试题再做一个补充,力求覆盖到更多的 Redis 面试点。
Redis 持久化
Redis 持久化总共有以下三种方式:
- 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的方式写入磁盘;
- 文件追加方式(AOF, Append Only File),记录所有的操作命令,并以文本的形式追加到文件中;
- 混合持久化方式,Redis 4.0 之后新增的方式,混合持久化是结合了 RDB 和 AOF 的优点,在写入的时候,先把当前的数据以 RDB 的形式写入文件的开头,再将后续的操作命令以 AOF 的格式存入文件,这样既能保证 Redis 重启时的速度,又能减低数据丢失的风险。
1.RDB 持久化
RDB(Redis DataBase)是将某一个时刻的内存快照(Snapshot),以二进制的方式写入磁盘的过程。它的持久化触发方式有两类:一类是手动触发,另一类是自动触发。手动触发持久化的操作有两个: save
和 bgsave
,它们的区别在于使用 bgsave
不会阻塞 Redis 主线程的业务执行。
save
命令执行流程,如下图所示: