Subscribe
池塘🐟
Search
Sign up
php
laravel
mysql
docker
redis
rabbitmq
go
js
其他
笔记:redis的RDB快照
### redis数据持久化-RDB快照 #####1、内存快照,就是指内存中的数据在某一个时刻的状态记录 ``` Redis 的数据都在内存中,为了提供所有数据的可靠性保证,它执行的是全量快照,也就是说,把内存中的所有数据都记录到磁盘中。 ``` ##### 2、Redis 提供了两个命令来生成 RDB 文件,分别是 save 和 bgsave。 ```` save: 在主线程中执行,会导致阻塞; bgsave: 创建一个子进程,专门用于写入 RDB 文件,避免了主线程的阻塞,这也是Redis RDB 文件生成的默认配置。 ``` ##### 3、Redis 设计了 bgsave 和写时复制方式,尽可能减少了内存快照对正常读写的影响 ``` gsave 避免阻塞,但却只能读操作,解决写的问题,Redis 借助操作系统提供的写时复制技术(Copy-On-Write, COW),在执行快照的同时,正常处理写操作。 ``` #####4、 Redis 4.0 中提出了一个混合使用 AOF 日志和内存快照的方法。 ``` 内存快照以一定的频率执行,在两次快照之间,使用 AOF 日志记录这期间的所有命令操作。快照不用很频繁地执行,这就避免了频繁 fork 对主线程的影响。而且,AOF日志也只用记录两次快照间的操作,也就是说,不需要记录所有操作了,因此,就不会出现文件过大的情况了,也可以避免重写开销。 这个方法既能享受到 RDB 文件快速恢复的好处,又能享受到 AOF 只记录操作命令的简单优势 ```
提交评论
提交