九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)
九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)@
目录
[*]九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)
[*]1. RDB 概述
[*]2. RDB 持久化执行流程
[*]3. RDB 的详细配置
[*]4. RDB 备份&恢复
[*]5. RDB 持久化小结(优势 和 劣势)
[*]6. 最后:
Redis 持久化-RDB:官网文档地址: https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/
Redis 关于持久化方案:有两种:
[*]RDB(Redis DataBase)
[*]AOF(Append Of File)
这里我们主要介绍RDB 持久化方案,AOF 持久化方案,在下一篇文章当中。
1. RDB 概述
RDB 是什么 ?:
在指定的时间间隔内将内存当中的数据集快照写入到磁盘当中,也就是 Snapshot 快照,恢复时将快照文件当中的内容读取到内存 当中。
2. RDB 持久化执行流程
RDB 及其执行流程:
对上图的解读:
具体流程如下:
[*]Redis 客户端执行 bgsave 命令或者自动触发 bgsave 命令。
[*]主进程判断当前是否已经存在正在执行的子进程 ,如果存在,那么主进程直接返回。
[*]如果不存在,正在执行的子进程 ,那么就 fork 一个新的子进程进行持久化数据,fork 过程是阻塞的,fork 操作完成后主进程即可执行其它操作。
[*]子进程先将数据写入到 临时的 rdb 文件中 ,待快照数据写入完成后,再原子替换旧的 rdb 文件。
[*]同时发送信号给主进程,通知主进程 rdb 持久化完成,主进程更新相关的统计信息。
小结:
[*]整个过程中,主进程是不进行任何 IO 操作的,这就确保了极高的性能。
[*]如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那 RDB 方式要比 AOF 方式更加的高效。
[*]RDB的缺点是最后一次持久化的数据可能丢失。
如果你是正常关闭 Redis ,仍然会进行持久化,不会造成数据丢失。
如果是 Redis 异常终止/宕机 ,就可能造成数据丢失。
后面在讲解快照配置的时候,进行说明。
Fork&Copy-On-Write:
<ol>Fork 的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量,环境变量,程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程。
在 Linux 程序中,fork() 会产生一个和父进程完全相同的子进程,但子进程在此后都会 exec 系统调用,出于效率考虑,Linux 中引入了 “写时复制技术 即:copy-on-write” ,有兴趣的可以移步至
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]