redis【是单线程吗?】


说明

  • Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。因为文件事件分派器队列的消费是单线程的,所以Redis才叫单线程模型。

  • Redis 4.0 开始就有多线程的概念了,比如 Redis 通过多线程方式在后台删除对象、以及通过 Redis 模块实现的阻塞命令等。

  • Redis 6.0 网络处理多线程,指的是在网络 IO 处理方面上了多线程,如网络数据的读写和协议解析等,需要注意的是,执行命令的核心模块还是单线程的。

  • Redis 的瓶颈并不在 CPU,而在内存和网络。内存不够的话,可以加内存或者做数据结构优化和其他优化等,但网络的性能优化才是大头,网络 IO 的读写在 Redis 整个执行期间占用了大部分的 CPU 时间,如果把网络处理这部分做成多线程处理方式,那对整个 Redis 的性能会有很大的提升。

IO多路复用

-


文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
mysql【主从同步工具Maatkit安装使用】 mysql【主从同步工具Maatkit安装使用】
问题说明mysql主从同步时难免出现问题导致数据不一致情况.此时需要手动将主从数据同步. Maatkit是一个开源的工具包,为mySQL日常管理提供了帮助,它包含很多工具,这里主要说下面两个: mk-table-checksum : 用来
2020-08-05
下一篇 
mysql【监控指标采集mysqld-exporter】 mysql【监控指标采集mysqld-exporter】
说明prometheus监控插件mysqld_exporter可以采集mysql指标并告警展示. 步骤本文使用docker部署的方式 创建用户并授权```sqlCREATE USER ‘exporter’@’%’ IDENTIFIED B
2020-08-04
  目录