日期:2014-05-17  浏览次数:20531 次

[转]php与memcached服务器交互的分布式实现源码分析[memcache版]

原文链接:http://www.cnblogs.com/luckcs/articles/2619846.html

前段时间,因为一个项目的关系,研究了php通过调用memcachememcached?PECL扩展库的接口存储到分布式缓存服务器的机制,在此做我根据他们各自的源码进行分析,希望能对这方面感兴趣的人有些帮助。
本篇文章我会针对php和memcache扩展库的交互根据源码展开分析。
PHP调用memcache的接口通常会是如下过程:

?

<?php  
$mmc = new Memcache();  
$mmc->addServer('node1', 11211);  
$mmc->addServer('node2', 11211, MemcacheConfig::MEMCACHE_PERSISTENT, 2);  
$mmc->set('key', 'value');  
echo $mmc->get('key');  
$mmc->delete('key');

?短短几行代码,一个缓存key的生命周期就已经完整层现。从Memcache的初始化,到addServer添加两个服务器节点,接着set一个key到服务器上,然后get到这个key输出,最后delete这个key。在这个生命周期里,Memcache在底层究竟做了哪些事情,保证了数据存储服务器的均匀分布,数据的完整性?

?

接下来,我会根据上述生命周期的顺序,循序渐进的分析(由于主题是分布式算法的分析,所以接下来不相干的代码我会略去,很多分析我会直接备注在源码上)。