memcache线程模型

单进程(工作进程)多线程半异步半同步框架

底层异步使用libevent,每个线程一个event_base 进行异步事件驱动。

每个线程一个fd队列,master线程accept一个fd后根据rr算法把fd插入到某个线程的fd队列,然后通过管道向该线程发送一个字符“c”,通知该线程,线程异步监控到管道可读,如果读取到‘c’字符,则从队列中获取fd,并把fd加入到对应的event_base中进行监听。

event_handler是所有事件的回调函数,里面通过状态机处理fd的各种事件。

初始化多个锁,在处理item时对key进行hash选取某个锁,对该item的相关操作都通过这个锁进行同步。(会导致多个key的item使用了同一个锁)

你可能感兴趣的:(memcache)