将Ministored从libevent1.4升级到2.0以后,花了两天额外的时间来做调试这个http的框架。
按照开发的设想,这个ministored支持四个基本的操作put、get、delete、status;在经过几个版本的改动以后,协议如下:
1)数据通过post的方式提交
2)各个基本操作通过一个自定义的Http的头method来区分。而client和server之间的传送的二进制数据通过base64编码以后的字符串发送。数据附加在post操作提交的字符缓冲区中。
2.1 put操作需要的数据key value,解码以后,按照key和value的大小直接二进制拷贝,server并不关心数据的具体类型
2.2 get操作接收client发送的key,解码,取出对应的数据以后,base64编码,发送给client
2.3 delete操作接收client发送的key,解码,删除数据
2.4 status操作直接返回当前Ministore状态的描述字符串
3)各个操作的结果通过自定义的响应头"result"返回
下面是部分的代码,限于篇幅,就不完全展开了。
这个server框架不仅适用ministored,可以将它搭配任意的存储工具来做网络端的存储。比如BDB、tokyo cabinet来做一个定制的大容量的缓存。
分享到:
相关推荐
libevent-2.1.10-stable.tar libevent-release-1.4.15-stable.tar libevent文件组织 用50个金币买的,不想让继续多赚 包含这些
官方离线安装包,亲测可用
《深入理解libevent-devel及其在CentOS 7中的应用》 libevent是一个开源的、跨平台的库,它提供了一种高效的方式来处理时间驱动和事件驱动的编程。这个库允许程序处理大量的并发连接,而无需复杂的多线程或异步编程...
libevent-devel-1.4.13-4.el6.x86_64: failure: Packages/libevent-devel-1.4.13-4.el6.x86_64.rpm from c6-media: [Errno 256] No more mirrors to try. libevent-headers-1.4.13-4.el6.noarch: failure: ...
官网下载下不来 libevent-release-2.1.11-stable.zip libevent-release-2.1.11-stable.zip libevent-release-2.1.11-stable.zip libevent-release-2.1.11-stable.zip
libevent-devel-1.4.13-4.el6.x86_64.rpm需要的人可以拿去
libevent-release-1.4.15-stable.tar.gz libevent-release-1.4.15-stable.tar.gz libevent-release-1.4.15-stable.tar.gz libevent-release-1.4.15-stable.tar.gz
libevent-devel-2.0.21-4.el7.x86_64.rpm,安装zabbix服务可能会用到的依赖包。
《深入理解Libevent多线程机制:以libevent-thread-20140224-1源码为例》 Libevent是一个强大的事件通知库,它允许程序员在多个平台上高效地处理网络事件,如TCP、UDP、Unix域套接字等。在单线程环境中,Libevent...
标题"libevent-devel-1.4.13-4.el6.x86_64.rpm.rar"表明我们关注的是libevent的一个开发版本,适用于64位的Red Hat Enterprise Linux 6(RHEL6)系统。描述中的"都放在压缩包里了"暗示我们拥有libevent相关的多个...
libevent-doc-1.4.13-4.el6.noarch libevent-headers-1.4.13-4.el6.noarch libevent-devel-1.4.13-4.el6.i686
包括依赖包: libevent-doc-1.4.13-4.el6.noarch.rpm libevent-headers-1.4.13-4.el6.noarch.rpm libevent-1.4.13-1.el6.x86_64.rpm
《深入理解libevent-1.4.4-iocp-3:事件驱动编程与I/O复用技术的应用》 在IT行业中,事件驱动编程和I/O复用技术是构建高性能网络服务的关键技术之一。libevent是一个广泛使用的开源库,它为开发者提供了在多种操作...
linux下安装memcached的必备库文件
The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks...
《深入理解libevent-2.1.12-stable:高效IO事件处理库解析》 在计算机编程领域,尤其是在服务器开发中,高效的IO处理是关键性能优化环节之一。libevent是一个开源的、跨平台的库,它提供了一个事件通知机制,帮助...
cd sample mkdir htdocs vim htdocs/index.html ./http-server -p 18080 -v htdocs curl -i http://127.0.0.1:18080/index.html
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装