听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write

1、管道引发的知识点

听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第1张图片

2、子进程与父进程的关系

  听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第2张图片

3、linux fork()函数的作用

     1、速度快

     2、占用空间小  ---->写时复制技术

听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第3张图片

 当子进程使用父进程已经创建好的数据时发生copy on write即先将相同的地址空间数据拷贝到另外一个地址中,然后再对此变量赋值,这样子进程可以看到父进程的数据,但是在应用程序中修改数据时确无法改变父进程的数据

听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第4张图片

man fork函数

4、实例redis如何将数据分时点写到磁盘上的

      ① 8点中redis要存储的数据为只有a=3,但是每隔30分钟写一次数据,在8:30分的时候由于redis提供非阻塞的服务,数据为a=3,b=4发生了改变

          听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第5张图片

②或者问题更加极端,正好在8;30的时候 a =8  b=6了,出现了时点混乱的问题,那么redis是如何解决的

听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第6张图片

③ redis 持久化RDB就是使用了linux 的fork 函数的copy_on_wirte技术,即使用fork创建子进程,将8:00的数据a =3 写入磁盘(RDB)的

   听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第7张图片

5、RDB单机持久化 支持的方式

听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第8张图片

                                          听马士兵讲redis笔记三 redis 持久化RDB fork copy_on_write_第9张图片

时点性:可以通过配置文件配置多长时间备份一次数据到磁盘

save:可以通过人工实时操作,想什么时候保存就什么时候保存

bgsave 规则:图中的规则关系为

                    条件1:如果60秒内发生10000次数据变化则直接保存 RDB

                    条件2:如果条件1没有满足,那么如果300秒内发生10次数据变化那么直接保存到RDB

                    条件3:如果条件2没有满足,那么如果900秒内有1次数据变化那么直接保存数据到RDB

                   

感谢

你可能感兴趣的:(redis)