php模块memcache和memcached区别分析
談及php搭配memcached使用,已經(jīng)是老生常談的問題。但是有一些細節(jié),不見得人人清楚。比如說php的模塊memcache和memcached有什么區(qū)別等。下面我就簡單介紹一下。
1.目前大多數(shù)php環(huán)境里使用的都是不帶d的memcache版本,這個版本出的比較早,是一個原生版本,完全在php框架內開發(fā)的。與之對應的帶d的memcached是建立在libmemcached的基礎上,所以相對來說,memcached版本的功能更全一些。?
memcache:http://cn2.php.net/manual/en/book.memcache.php?
memcached:http://cn2.php.net/manual/en/book.memcached.php?
2.Memcache是原生實現(xiàn)的,支持OO和非OO兩套接口并存。而memcached是使用libmemcached,只支持OO接口。?
3.memcached還有個非常稱贊的地方,就是flag不是在操作的時候設置了,而是有了一個統(tǒng)一的setOption()。Memcached實現(xiàn)了更多的memcached協(xié)議。?
4.memcached支持Binary Protocol,而memcache不支持。這意味著memcached會有更高的性能。不過memcached目前還不支持長連接。?
下面有一張表,來對比php客戶端擴展memcache與memcached?
http://code.google.com/p/memcached/wiki/PHPClientComparison?
另外一點也是大家比較關心的,就是所使用的算法。大家都知道“一致性hash算法”是當添加或刪除存儲節(jié)點時,對存儲在memcached上的數(shù)據(jù)影響較小的一種算法。那么在php的兩個擴展庫中,都可以使用該算法,只是設置方法有所不同。?
Memcache?
修改php.ini添加:?
[Memcache]?
Memcache.allow_failover = 1?
……?
……?
Memcache.hash_strategy =consistent?
Memcache.hash_function =crc32?
……?
……?
或在php中使用ini_set方法:?
Ini_set(‘memcache.hash_strategy','standard');?
Ini_set(‘memcache.hash_function','crc32');?
Memcached?
$mem = new memcached();?
$mem->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);?
$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);
來源:http://www.jb51.net/article/27366.htm
總結
以上是生活随笔為你收集整理的php模块memcache和memcached区别分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无声告白(说一说无声告白的简介)
- 下一篇: 深圳湾(说一说深圳湾的简介)