【5分钟背八股】redis单线程为什么快?有哪些线程模型?

5个月前 (12-08) 0 点赞 0 收藏 0 评论 12 已阅读

IO模型维度的特征

IO模型使用了多路复用器,在linux系统中使用的是EPOLL

类似netty的BOSS,WORKER使用一个EventLoopGroup(threads=1)

单线程的Reactor模型,每次循环取socket中的命令然后逐一操作,可以保证socket中的指令是按顺序的,不保证不同的socket也就是客户端的命令的顺序性

命令操作在单线程中顺序操作,没有多线程的困扰不需要锁的复杂度,在操作数据上相对来说是原子性质的

架构设计模型

自身的内存存储数据,读写操作不设计磁盘IO

redis除了提供了Value具备类型还为每种类型实现了一些操作命令

实现了计算向数据移动,而非数据想计算移动,这样在IO的成本上有一定的优势

且在数据结构类型上,丰富了一些统计类属性,读写操作中,写操作会O(1)负载度更新length类属性,使得读操作也是O(1)的

【5分钟背八股】23:redis单线程为什么快?有哪些线程模型?.png

推荐学习【5分钟背八股】redis缓存如何回收?


【5分钟背八股】redis单线程为什么快?有哪些线程模型?

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册