Memcache的分布式应用
早就聽說memcached是一個不錯的分布式內(nèi)存緩存系統(tǒng),做了些功課想把這memcache用到實(shí)際當(dāng)中來.因?yàn)橐粋€好的緩存系統(tǒng),能給web應(yīng)用帶來不小的性能提升.做了一些功課之后,做了下面幾點(diǎn)總結(jié):
- memcache適合與web server安裝在同一server上
- memcache可以在n個端口開n個進(jìn)程,如果和web server在同一機(jī)器的話,還能減少網(wǎng)絡(luò)開銷.
- 配置簡單,啟動一個進(jìn)程就行了,免去了配置文件
我更關(guān)心的是,memcache的分布式應(yīng)用應(yīng)該如何部署.帶著這個問題,我在各搜索引擎上做了進(jìn)一步的功課.最初找到的辦法是,首先啟動n個memcache進(jìn)程,這些進(jìn)程可以在不同的server的不同端口上.
然后使用perl的api可以方便的一次鏈接多個memcache,存儲讀取機(jī)制不明.不久找到php的 一個MemcachedClient類,基本上就是perl里api的再實(shí)現(xiàn).它使用的fscokopen或者socket系列function來直接讀 取memcache—-這說明只要清楚memcache的網(wǎng)絡(luò)協(xié)議,你甚至不用裝什么php的memcache extenstion.看了這個類的實(shí)現(xiàn),基本上弄清楚,它的分布式應(yīng)用差不多就是將不同的key保存在不同的memcache daemon,不會保留多個副本,也就不存在多memcache同步的問題了.
過了不久俺又有發(fā)現(xiàn),在最新的php手冊上找到了memcache::addServer()這方法,它就是為分布式應(yīng)用而產(chǎn)生的,有了這個支持的話,php的代碼就更簡單:
<?php? ?$memcache_obj = new Memcache;
? ?$memcache_obj->addServer('memcache_host', 11211);
? ?$memcache_obj->addServer('failed_host', 11211);
? ?$stats = $memcache_obj->getExtendedStats();
? ?print_r($stats);
?>
看來php手冊也要與時俱進(jìn)啊,最好是能夠直接使用英文版,否則也不會走這么多彎路了:)
官方站點(diǎn)
http://www.danga.com/memcached/
轉(zhuǎn)載于:https://www.cnblogs.com/qiantuwuliang/archive/2011/03/07/1974485.html
總結(jié)
以上是生活随笔為你收集整理的Memcache的分布式应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript让firefox支持
- 下一篇: 简体中文 Windows 7 Beta