redis线程模型

2020-10-20  本文已影响0人  laowangv2

Reactor模型

参考:https://juejin.im/post/6844903636422623240#heading-5

1.单线程的Reactor模型

参考:
http://redisbook.com/preview/event/file_event.html

2.redis4.0

新增了一些异步操作,使用多线程:

3.redis6.0

主线程select可读后加入线程组,阻塞等待读完,命令依旧单线程处理,写回也加入线程组。类似netty的workergroup,命令执行还是单线程
单线程模型主要问题时,IO需要主线程阻塞的完成,虽然不用等待IO就绪,但IO本身是阻塞操作,肯定并发越高,压力越大,多线程可以分摊IO操作的压力
参考:
https://www.modb.pro/db/27969
https://www.cnblogs.com/caohongchang/p/13285948.html

4.问答

  1. redis为什么快
    1. 基于内存
    2. 数据结构简单,单条指令不会阻塞太久
    3. 多路复用(event loop) 和 非阻塞IO (IO时都已经准备好了)
    4. 单线程模型,避免了多线程开销

事件

根据最快要到期的时间事件挂起一定时间,执行文件事件,执行时间事件(serverCron)

上一篇 下一篇

猜你喜欢

热点阅读