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

1、管道引发的知识点

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

  

3、linux fork()函数的作用

     1、速度快

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

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

man fork函数

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

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

          

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

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

   

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

                                          

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

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

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

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

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

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

                   

感谢

发布了78 篇原创文章 · 获赞 32 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/caofengtao1314/article/details/104212576