redis 线程模型
redis基于Reactor模式开发了自己的网络事件处理器:这个处理器被称为文件事件处理器(file event handler),这个文件事件处理器是单线程的,虽然文件事件处理器以单线程方式运行,但通过使用I/O多路复用程序来监听多个套接 字,文件事件处理器既实现了高性能的网络通信模型,又可以很好地与Redis服务器中其他同样以单线程方式运行的模块进行对接,这保持了 Redis内部单线程设计的简单性。
文件事件处理器的结构包含4个部分:多个socket,IO多路复用程序,文件事件分派器,事件处理器
文件事件处理器的四个组成部分(来源redis设计与实现第12章)
事件类型分以下几种情况:
如果socket没有任何事件被监听,那么函数返回AE_NONE。
如果socket的读事件正在被监听,那么函数返回AE READABLE。
如果socket的写事件正在被监听,那么函数返回AE_WRITABLE。
如果socket的读事件和写事件正在被监听,那么函数返回AEREADABLE | AEWRITABLE。
redis单线程模式示例
目前redis6.0已经发布,支持多线程模型,想了解的话推荐:https://mp.weixin.qq.com/s/FZu3acwK6zrCBZQ_3HoUgw
版权声明: 本文为 InfoQ 作者【wjchenge】的原创文章。
原文链接:【http://xie.infoq.cn/article/5c6ba986bb1feee641647a08d】。文章转载请联系作者。
评论 (2 条评论)