关于分布式缓存memcached详解

libevent事件机制

memcached基于libevent事件处理,用相关资料上描述,libevent是个程序库,它将linux的epoll、bsd类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥o(1)的性能。

memcached服务器,缓存数据都是以key-valuehash表的内存存储,最大key不超过250个字符,最大value项默认不超过1m,因此重启程序和服务器都会导致数据丢失,但它会消耗更低的cpu,因此可以用配置一般内存大点的服务器作为memcached服务器。在内容超过制定缓存大小后,会用lru,最近最少使用算法删除不使用的数据,默认超时时间为30天。memcached服务器之间互不通信,分布式算法在客户端,由客户端选择把数据存储到哪台memcached服务器上,比如.net客户端,一般默认采用key的hashcode来模memcached服务器数量取余的值,作为选择当前key-value存储的服务器,当然系统足够庞大后,可以编写更加复杂和为具体项目做的算法。

请参考:

http://tech.idv2.com/2008/08/17/memcached-pdf/

相关推荐