0
点赞
收藏
分享

微信扫一扫

redis深度剖析七(redis6.0版本多线程)

sullay 2022-04-06 阅读 33

在6.0版本之前,在socket连接建立之后,io处理如socket读取和socket的写入采用的是单线程,过程如下,可以理解为“开发的人只有一个,但负责上线的人也只有一个”
在这里插入图片描述
在这里插入图片描述

在6.0版本之后,io处理如socket读取阶段的解析和写入socket采用的是多线程,但在执行操作的时候采用的还是单线程,其过程如下,可以理解为“有很多人开发,但负责上线的人就只有一个”,之所以在执行操作时只保留一个线程,是因为这个阶段通常是进行业务处理,可能会涉及到事务操作,涉及到对共有变量的操作,这个时候就必须要用到锁,高并发的数据结构,否则会有安全问题,这样可能会影响io的执行效率,所以为了维持平衡,只将socket的读取,解析,写入这些非业务处理用多线程,具体的执行操作采用单线程;注意在io的一主多从的模型当中,执行操作也是用的多线程;这两个是有区别的;

在redis.conf文件中,可以配置网络io的线程数量,默认为4个,另外也可以启动网络io线程,默认关闭的;
在这里插入图片描述

在这里插入图片描述

Redis性能主要决定因素:网络io,cpu核心数,内存

举报

相关推荐

0 条评论