第四章第二节网站建设的教学设计,云南网站建设一度科技公司,企业展厅效果图大全,做国外营销型网站设计RDB 相比于 AOF#xff0c;数据恢复的速度更快#xff0c;因为是二进制数据#xff0c;直接加载进内存即可#xff0c;但是 RDB 的频率不好把握。
如果频率太低#xff0c;在两次快照期间服务器发生宕机#xff0c;可能会丢失较多的数据如果频率太高#xff0c;频繁写入…RDB 相比于 AOF数据恢复的速度更快因为是二进制数据直接加载进内存即可但是 RDB 的频率不好把握。
如果频率太低在两次快照期间服务器发生宕机可能会丢失较多的数据如果频率太高频繁写入磁盘和创建子进程会带来额外的性能开销 有没有什么方法可以既有 RDB 快速恢复的优点又有 AOF 丢失数据少的优点 那就将 RDB 和 AOF 混合使用这个方法是在 Redis 4.0 提出的即混合使用 AOF 日志和内存快照也叫混合持久化。
如果想要开启混合持久化功能可以在 Redis 配置文件中将下面这个配置项设置成 yes。
aof-use-rdb-preamble yes混合持久化工作在 AOF 日志重写期间。
当开启了混合持久化在 AOF 重写日志时fork 出来的重写子进程会先将与主进程共享的内存数据以 RDB 的方式写入到 AOF 文件然后主进程处理的操作命令会被记录在重写缓冲区里重写缓冲区里的增量命令会以 AOF 的方式写入到 AOF 文件写入完成后子进程通知主进程将新的含有 RDB 格式和 AOF 格式的 AOF 文件替换旧的 AOF 文件
简单来说使用了混合持久化AOF 文件的前半部分是 RDB 格式的全量数据后半部分是 AOF 格式的增量数据。 这样做的好处在于重启 Redis 加载数据时由于前半部分是 RDB 格式加载的时候速度会很快。
加载完 RDB 的内容后才会加载后半部分的 AOF 的内容这里的内容是 Redis 后台子进程重写 AOF 期间主进程处理的操作命令可以使得数据更少的丢失。