程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php模塊memcache和memcached區別分析

php模塊memcache和memcached區別分析

編輯:PHP綜合
1.目前大多數php環境裡使用的都是不帶d的memcache版本,這個版本出的比較早,是一個原生版本,完全在php框架內開發的。與之對應的帶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是原生實現的,支持OO和非OO兩套接口並存。而memcached是使用libmemcached,只支持OO接口。
3.memcached還有個非常稱贊的地方,就是flag不是在操作的時候設置了,而是有了一個統一的setOption()。Memcached實現了更多的memcached協議。
4.memcached支持Binary Protocol,而memcache不支持。這意味著memcached會有更高的性能。不過memcached目前還不支持長連接。

下面有一張表,來對比php客戶端擴展memcache與memcached
http://code.google.com/p/memcached/wiki/PHPClientComparison

另外一點也是大家比較關心的,就是所使用的算法。大家都知道“一致性hash算法”是當添加或刪除存儲節點時,對存儲在memcached上的數據影響較小的一種算法。那麼在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);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved