以下是我安裝Memcached版本的PHP模塊的過程記錄:

wget http://download.tangent.org/libmemcac " /> 国产欧美精品一区二区色综合,亚洲精品无码不卡在线播HE,99久久亚洲综合精品

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php的memcached客戶端memcached

memcache的官方主頁:http://pecl.php.NET/package/memcache
memcached的官方主頁:http://pecl.php.NET/package/memcached

以下是我安裝Memcached版本的php模塊的過程記錄:

wget http://download.tangent.org/libmemcached-0.48.tar.gz
tar zxf libmemcached-0.48.tar.gz
cd libmemcached-0.48
./configure --prefix=/usr/local/libmemcached --with-memcached
make
make install

wget http://pecl.php.NET/get/memcached-1.0.2.tgz
tar zxf memcached-1.0.2.tgz
cd memcached-1.0.2
/usr/local/webserver/php/bin/phpize
./configure --enable-memcached --with-php-config=/usr/local/webserver/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
make
make install

php.ini中加入
extension=memcached.so
完成

另:
在安裝libmemcached時,如果只用./configure,可能會提示:
checking for memcached… no
configure: error: “could not find memcached binary”

兩者使用起來幾乎一模一樣。
復制代碼 代碼如下:
$mem = new Memcache;
$mem->addServer($memcachehost, '11211');
$mem->addServer($memcachehost, '11212');
$mem->set('hx','9enjoy');
echo $mem->get('hx');

復制代碼 代碼如下:
$md = new Memcached;
$servers = array(
array($memcachehost, '11211'),
array($memcachehost, '11212')
);
$md->addServers($servers);
$md->set('hx','9enjoy');
echo $md->get('hx');

memcached的方法比memcache多不少,比如getMulti,getByKey,addServers等。
memcached沒有memcache的connect方法,目前也還不支持長連接。
memcached 支持 Binary Protocol,而 memcache 不支持,意味著 memcached 會有更高的性能。
Memcache是原生實現的,支持OO和非OO兩套接口并存,memcached是使用libmemcached,只支持OO接口。
更詳細的區別:http://code.google.com/p/memcached/wiki/phpClientComparison


memcached服務端是集中式的緩存系統,分布式實現方法是由客戶端決定的。
memcached的分布算法一般有兩種選擇:
1、根據hash(key)的結果,模連接數的余數決定存儲到哪個節點,也就是hash(key)% sessions.size(),這個算法簡單快速,表現良好。然而這個算法有個缺點,就是在memcached節點增加或者刪除的時候,原有的緩存數據將大規模失效,命中率大受影響,如果節點數多,緩存數據多,重建緩存的代價太高,因此有了第二個算法。
2、Consistent Hashing,一致性哈希算法,他的查找節點過程如下:
    首先求出memcached服務器(節點)的哈希值,并將其配置到0~232的圓(continuum)上。然后用同樣的方法求出存儲數據的鍵的哈希值,并映射到圓上。然后從數據映射到的位置開始順時針查找,將數據保存到找到的第一個服務器上。如果超過2的32次方后仍然找不到服務器,就會保存到第一臺memcached服務器上。

memcache在沒有任何配置的情況下,是使用第一種方法。memcached要實現第一種方法,似乎是使用(未確認):
$md->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);  

第二種一致性哈希算法:

memcache在php.ini中加
復制代碼 代碼如下:
Memcache.hash_strategy =consistent
Memcache.hash_function =crc32

memcached在程序中加(未確認)
復制代碼 代碼如下:
$md->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$md->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);

$mem->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);

一些參考文檔:
memcached分布測試報告(一致性哈希情況下的散列函數選擇):
http://www.iteye.com/topic/346682
php模塊memcache和memcached區別: http://www.jb51.NET/article/27366.htm
php模塊:Memcached > Memcache:http://www.jb51.NET/article/27367.htm

20110509@@UPDATE:
如果安裝libmemcached有如下出錯提示:
make[2]: *** [clients/ms_conn.o] Error 1
make[2]: Leaving directory `/www/soft/libmemcached-0.48'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/www/soft/libmemcached-0.48'
make: *** [all] Error 2

可在configure時增加--disable-64bit CFLAGS="-O3 -march=i686"
即:./configure --prefix=/usr/local/libmemcached --with-memcached --disable-64bit CFLAGS="-O3 -march=i686"

php技術php的memcached客戶端memcached,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 97视频在线观看免费播放 | 国产蜜臀AV在线一区视频 | 欧美精品高潮呻吟AV久久 | 欧美亚洲日韩国码在线观看 | 多肉np一女多男高h爽文现代 | 精品视频在线观看视频免费视频 | 99精品AV无码一区二区 | 亚洲春色AV无码专区456 | 99精品视频在线观看免费播放 | 日韩亚洲欧美中文在线 | 国产中的精品AV一区二区 | 国产亚洲精品久久久闺蜜 | 亚洲欧洲日产国码中学 | 亲女乱h文小兰第一次 | 67194con免费福和视频 | 美女撒尿无遮挡免费中国 | 婷婷激情综合色五月久久竹菊影视 | 99热精品在线av播放 | 久久人妻熟女中文字幕AV蜜芽 | 国产午夜精品理论片影院 | 亚洲色综合狠狠综合区 | 无人区尖叫之夜美女姐姐视频 | 国产精品私人玩物在线观看 | 日韩AV片无码一区二区三区不卡 | MD传媒MD0021在线观看 | 一色屋精品亚洲香蕉网站 | 伊人久综合 | 国产乱子影视频上线免费观看 | 你的欲梦裸身在线播放 | 伊人久久大香线蕉综合电影 | 久久99精品视频 | 国产精品久久久精品日日 | 秋霞电影院午夜伦高清 | WWWXXXX兽交| 高清国产激情视频在线观看 | 九色PORNY真实丨国产大胸 | 中文在线无码高潮潮喷在线 | 老阿姨才是最有味的一区二区 | 日本电影免费久久精品 | 亚洲欧美激情精品一区二区 | 久久久久综合一本久道 |