Redis单线程为何这么快

1、redis是纯内存操作

2、采用了非阻塞的IO多路复用

3、单线程避免了多线程频繁的上下文切换的性能损耗
因为内存操作速度非常快,cpu对于多线程之间的上下文切换需要时间,反而影响了性能,还不如单线程来得实在。

Redis为何称为是单线程模型?
因为redis是基于Reactor模式开发了网络事件处理器和文件事件处理器,它是单线程的,所以redis才叫单线程模型。

Redis的单线程模型
文件处理器的结构包含:多个socket、IO多路复用程序、文件事件分派器和事件处理器(命令处理器、命令回复处理器、连接应答处理器等)。
多个socket可能并发产生不同的事件,IO多路复用程序会监听多个socket,将socket放入一个队列中排队,每次从队列中有序、同步取出一个socket给事件分派器,事件分派器把socket分派给对应的事件处理器,等这个socket事件处理完后,再将队列里的下一个socket取出给事件分派器。
文件事件分派器会根据每个socket当前产生的事件,来选择对应的事件处理器来处理。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值