Redis—RDB快照
一、RDB快照知识点
Redis 提供了两个命令来生成 RDB 文件,分别是 save 和 bgsave,区别在于是否在主线程中执行。(Redis的快照这个概念,某一方面跟MySQL的read view视图有点像,都是保存某一时刻的数据库状态)
Redis是全量快照,就是在某一时刻会把内存中的所有数据都记录到磁盘
二、RDB、优点、缺点?
▪ 定义:指定时间间隔将数据快照写⼊磁盘,恢复的时候将快照⽂件直接读入内存
▪ 优点:
• 适合大规模数据恢复
▪ 缺点:
• 每隔⼀段时间才备份,Redis宕机的话会丢失数据,适合对数据完整性、⼀致性要求不高
三、如何选择?
▪ 对数据不敏感,可以关闭持久化
▪ 可以承受数分钟的损失,如做缓存,只开RDB
▪ 做内存数据库,RDB、AOF都开启,RDB时候做数据备份,AOF保证数据不丢失
四、混合持久化?
▪ Redis4.0
▪ 前半段是RDB格式全量数据,后半段是AOF增量数据
▪ 优点:绝⼤部分是RDB,加载速度快,增量是AOF,避免了数据丢失
▪ 缺点:兼容性差,Redis4.0之前不识别该aof文件;阅读性差,前半段是RDB
混合持久化的好处
这样的好处在于,重启 Redis 加载数据的时候,由于前半部分是 RDB 内容,这样加载的时候速度会很快。
加载完 RDB 的内容后,才会加载后半部分的 AOF 内容,这里的内容是 Redis 后台子进程重写 AOF 期间,主线程处理的操作命令,可以使得数据更少的丢失。