-
Notifications
You must be signed in to change notification settings - Fork 55
简单的memcached服务器
lichuang edited this page Oct 10, 2013
·
1 revision
这一节有一个比之前的Echo服务器更复杂一些的例子,它是一个简单的memcached服务器,支持memcached协议中的set/get命令.该服务器的完整代码可以在examples/qcached中找到.
Echo服务器中只有两种微进程,一个是负责监听客户端连接的进程,在接收到新的客户端请求之后,它将创建一个子进程负责处理客户端的请求.
memcached服务器比Echo服务器复杂的地方在于,它还涉及到数据的存储.因此,在memcached服务器中还有第三种进程,就是存储进程,处理客户端请求的进程在set/get数据时将通过消息的形式与该进程通信,进行数据的存储和查询--同样的,这个过程也是"同步化"的.
来看看与进程消息收发相关的两个API:qlnode_send,qlnode_recv
qlnode_send的参数有两个,一个是进程id,这个进程id是在调用qlnode_spawn函数创建微进程之后的返回值;另一个是一个表,里面存放的是传递给另一个进程的参数. qlnode_recv则没有输出参数,它的返回值则是一个表,里面存放的别的进程向该进程传递的数据.
这两个函数的使用都很简单,可以结合代码来阅读理解,就不在这里多做阐述了.