PHPÄ£¿é Memcached¹¦ÄܶàÓÚMemcache

5年以前  |  阅读数:767 次  |  编程语言:PHP 

±ÈÈç˵PECLÀiÓÐÁ½¸oMemcachedµÄÄ£¿e£¬MemcacheºÍMemcached£¬Ä¿Ç°´o²¿ÖPHP»¾³ÀiʹÓõÄÊÇÃu×ÖÀi²»´ødµÄMemcache°ae±¾£¬Õa¸o°ae±¾ÊͳoµÄ±È½ÏÔ磬ÊÇÒ»¸oÔ­Éu°ae±¾£¬ÓeÖ®¶ÔÓ¦µÄ´ødµÄMemcached°ae±¾ÔoÊǽ¨Á¢ÔÚlibmemcachedµÄ»u´¡ÉÏ£¬ËuÒÔ˵Memcached°ae±¾µÄ¹¦ÄܸuÈ«Ò»Ð(C)¡£

°²×°Memcached°ae±¾µÄPHPÄ£¿e

wget http://download.tangent.org/libmemcached-0.35.tar.gz
tar zxf libmemcached-0.35.tar.gz
cd libmemcached-0.35
./configure
make
make install

wget http://pecl.php.net/get/memcached-1.0.0.tgz
tar zxf memcached-1.0.0.tgz
cd memcached-1.0.0
phpize
./configure
make
make install

´o¿ªphp.ini¼ÓÉÏ£º

extension = "memcached.so"

ÕaÑu°²×°¾Í½aÊøÁË£¬Äa¿ÉÒÔͨ¹ýÏÂÁÐÃuÁiÀ´È*ÈÏ£º

php -m | grep mem

ÑÝʾMemcached°ae±¾µÄй¦ÄÜ

ÏÈÐe¹¹Ò»¸oÎÊÌa£¬¼ÙÉecounter³oʼֵÊÇÒ»¸oÕuÊý£¬²»Ê¹ÓÃincrement½¨£¬Í¨¹ýget/setÍe³Éÿ´Î¼ÓÒ»¡£

ÔÚMemcache°ae±¾Ài£¬ÎÒÃÇÖ»ÄÜ°´ÕÕ´oÖÂÈçϵÄ*½Ê½À´½øÐУº

$m = new Memcache();
$m->addServer('localhost', 11211);
$v = $m->get('counter');
$m->set('counter', $v + 1);

ÓÉÓÚget/setÕaÁ½¸o¶¯×÷ÎÞ*¨×÷Ϊһ¸oÔ­×ÓÀ´²Ù×÷£¬ËuÒÔµ±¶a¸o½ø³Ìͬʱ´¦Àiʱ£¬»a³oÏÖ¶ªÊ§µÄ¿ÉÄÜ£¬¸uÈÃÈËÄÕ»ðµÄÊÇ£¬Äa¸u±¾¾Í²»ÖªµÀʲôʱºo³oÏÖ¶ªÊ§¡£

ÔÙ¿´¿´Memcached°ae±¾Ài£¬ÎÒÃÇÊÇÈçºÎ×oµÄ£º

$md = new Memcached();
$md->addServer('localhost', 11211);
$v = $md->get('counter', null, $token)
$md->cas($token, 'counter', $v + 1);

casÊÇMemcached°ae±¾ÀiÌa¹(C)µÄ¹¦ÄÜ£¬Ëµ°×Á˾ÍÊÇÒ»¸oÀÖ¹ÛËøµÄ¹¦ÄÜ£¬Èç¹uÄa°Ñ$tokenµÄÖµvar_dump³oÀ´£¬¾Í»a*¢ÏÖ$tokenÆaʵ¾ÍÊÇÒ»¸o°ae±¾ºÅ£¬Èç¹uͨ¹ýgetµÃµ½µÄ$token°ae±¾ºÅÔÚcasµÄʱºo²»¶ÔÓ¦£¬¾Í˵Ã÷ÒѾ­ÓбðµÄ²Ù×÷¸uÐÂÁË£¬´Ëʱcas²Ù×÷»aʧ°Ü£¬ÖÁÓÚÈçºÎ¼ÌÐø²Ù×÷£¬¾Í¿´Äa×Ô¼ºÁË¡£

×¢£ºÈç¹uÄaÏeÊÖ¶¯ÖØÏÖһϳaÍ»µÄÇe¿o£¬¿ÉÔÚgetºÍcasÖ®¼asleepÈo¸ÉÃe£¬²¢¿½±´Á½*ݽű¾£¬ÏȺoÖ´ÐС£

˳±a˵һ¾a£¬ÍƼoµÄMemcached°ae±¾Ä£¿eµÄ¹þÏ£ÉeÖÃÈçÏ£º

$md->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$md->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);

×ܽa

Memcached°ae±¾»¹ÓкܶaMemcacheûÓеŦÄÜ£¬±ÈÈçͨ¹ýgetByKey, setByKeyµÈ×Ô¶¯Ö§³Ö¶a¸o*þÎñÆ÷£¬¾Í²»×¸ÊoÁË£¬¸ÃÓÃÄĸoÀ(C)Õ¹ÒѾ­²»ÑÔ×ÔÃ÷ÁË¡£

²¹³a£ºhttp://code.google.com/p/memcached/wiki/PHPClientComparison

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
贪吃蛇
文件下载
获取IMEI
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例