LEN

对话 Redis 持久化堵塞
下面是一段学生和老师间的问答 , 学生的部分删减了问: redis是单线程的,单线程同时在服务线上的请求还要进行...
扫描右侧二维码阅读全文
11
2019/03

对话 Redis 持久化堵塞

下面是一段学生和老师间的问答 , 学生的部分删减了

问: redis是单线程的,单线程同时在服务线上的请求还要进行文件 IO 操作,文件 IO 操作会严重拖垮服务器请求的性能。还有个重要的问题是为了不阻塞线上的业务,就需要边持久化边响应客户端请求。持久化的同时,内存数据结构还在改变,比如一个大型的 hash 字典正在持久化,结果一个请求过来把它给删掉了,还没持久化完呢,这尼玛要怎么搞?

[1]答:
你这是想当然了
redis持久化的时候 会阻塞服务
一般哪会在master上面开持久化。。 都是在slave上做持久化 master只提供服务
rdb有cow啊
都是fork的子进程做的rdb

请输入图片描述

警告: 一直强调单线程, 只是在处理我们的网络请求的时候只有一个线程来处理, 一个正式的redis server 运行的时候肯定不是一个线程的, 这里明确注意! 4.0 版本开始会支持多线程的当时, 具体需要考证

这个就是字面意思啊。。。 copy on write 父进程的数据发生改变的时候 子进程会copy一份
否则就是同一份
rdb也是会阻塞服务的 相对aof更严重

所以一般都在slave上做aof和rdb master提供服务

Last modification:March 11th, 2019 at 07:24 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment