memcached是一个分布式的内存cache系统,目前被大量地运用于各种各样的站点中,以不断提高站点的总体访问性能,而另外一方面,memcached的使用是非常简单的,可以说,使用门槛很低,这也许是造成memcached目前非常流行的原因之一。
我们可以看到,网上分析memcached的文章也比较多,本文是笔者结合memcached源代码的基础上对其线程接入模型进行深入的分析,通过学习和借鉴memcached设计和实现上 的一些思想,为我们的系统架构设计增添新的思路。
简单的说,memcached的实现并没有使用多进程模型,而是选择了多线程的模型,可以说,这种实现的方案确实是比较轻量级的。而多线程是基于libevent的事件机制以及基于管道pipe的信令周知机制来实现的。
主线程main_thread完成了系统的初始化和生成指定数量的worker_thread