Redis线程模型

故事扮演 提交于 2020-08-06 20:12:24
Redis是单线程模型,它内部采用了文件事件处理器filter event handler,而这个处理器是单线程的。
文件事件处理器包含:
  • 多个socket、
  • IO多路复用程序、
  • 事件分派器、
  • 事件处理器(连接应答处理器、事件请求处理器、事件回复处理器)。
流程:

IO多路复用程序会监听多个socket,当socket产生事件后,会将socket放入一个队列中,事件分派器每次取出一个事件再分给不同的处理器进行处理。

Q:为什么Redis是单线程的还可以支持高并发?
1.它是纯内存操作
2.它的核心是非阻塞的IO多路复用机制,这个机制只负责监听socket,然后将产生事件的socket压入队列中。不会对这个事件进行处理,是非阻塞的。
3.避免了多线程带来的频繁的上下文切换问题

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!