最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP模塊 Memcached功能多于Memcache

 更新時(shí)間:2011年06月14日 22:44:04   作者:  
PHP搭配Memcached已經(jīng)是婦孺皆知的標(biāo)配了。再提似乎讓人覺得太“圡”了,不過有一些細(xì)節(jié)不見得人人都清楚
比如說PECL里有兩個(gè)Memcached的模塊,MemcacheMemcached,目前大部分PHP環(huán)境里使用的是名字里不帶d的Memcache版本,這個(gè)版本釋出的比較早,是一個(gè)原生版本,與之對(duì)應(yīng)的帶d的Memcached版本則是建立在libmemcached的基礎(chǔ)上,所以說Memcached版本的功能更全一些。

安裝Memcached版本的PHP模塊

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

打開php.ini加上:

extension = "memcached.so"

這樣安裝就結(jié)束了,你可以通過下列命令來確認(rèn):

php -m | grep mem

演示Memcached版本的新功能

先虛構(gòu)一個(gè)問題,假設(shè)counter初始值是一個(gè)整數(shù),不使用increment方法,通過get/set完成每次加一。

在Memcache版本里,我們只能按照大致如下的方式來進(jìn)行:

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

由于get/set這兩個(gè)動(dòng)作無法作為一個(gè)原子來操作,所以當(dāng)多個(gè)進(jìn)程同時(shí)處理時(shí),會(huì)出現(xiàn)丟失的可能,更讓人惱火的是,你根本就不知道什么時(shí)候出現(xiàn)丟失。

再看看Memcached版本里,我們是如何做的:

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

cas是Memcached版本里提供的功能,說白了就是一個(gè)樂觀鎖的功能,如果你把$token的值var_dump出來,就會(huì)發(fā)現(xiàn)$token其實(shí)就是一個(gè)版本號(hào),如果通過get得到的$token版本號(hào)在cas的時(shí)候不對(duì)應(yīng),就說明已經(jīng)有別的操作更新了,此時(shí)cas操作會(huì)失敗,至于如何繼續(xù)操作,就看你自己了。

注:如果你想手動(dòng)重現(xiàn)一下沖突的情況,可在get和cas之間sleep若干秒,并拷貝兩份腳本,先后執(zhí)行。

順便說一句,推薦的Memcached版本模塊的哈希設(shè)置如下:

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

總結(jié)

Memcached版本還有很多Memcache沒有的功能,比如通過getByKey, setByKey等自動(dòng)支持多個(gè)服務(wù)器,就不贅述了,該用哪個(gè)擴(kuò)展已經(jīng)不言自明了。

補(bǔ)充:http://code.google.com/p/memcached/wiki/PHPClientComparison

相關(guān)文章

  • Mac系統(tǒng)下使用brew搭建PHP(LNMP/LAMP)開發(fā)環(huán)境

    Mac系統(tǒng)下使用brew搭建PHP(LNMP/LAMP)開發(fā)環(huán)境

    這篇文章主要介紹了Mac系統(tǒng)下使用brew搭建PHP(LNMP/LAMP)開發(fā)環(huán)境,本文講解了使用Brew手動(dòng)搭建PHP的開發(fā)環(huán)境,包括Apache、Nginx、PHP、MySQL、MongoDB、PHPMyAdmin等配置,需要的朋友可以參考下
    2015-03-03
  • 詳解PHP中數(shù)組函數(shù)的巧用

    詳解PHP中數(shù)組函數(shù)的巧用

    PHP?的數(shù)組是一種很強(qiáng)大的數(shù)據(jù)類型,與此同時(shí)?PHP?內(nèi)置了一系列與數(shù)組相關(guān)的函數(shù)可以很輕易的實(shí)現(xiàn)日常開發(fā)的功能。所以本文便總結(jié)了一些在常見場(chǎng)景中利用?PHP?內(nèi)置函數(shù)的實(shí)現(xiàn)方法,希望對(duì)你有所幫助
    2022-09-09
  • PHP strncasecmp字符串比較的小技巧

    PHP strncasecmp字符串比較的小技巧

    好象,大多時(shí)候,我們對(duì)于字符串的比較都是采用了 strtolower或者strtoupper之后,再判斷是否相等。
    2011-01-01
  • PHP模型Model類封裝數(shù)據(jù)庫操作示例

    PHP模型Model類封裝數(shù)據(jù)庫操作示例

    這篇文章主要介紹了PHP模型Model類封裝數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了php使用mysqli封裝的針對(duì)數(shù)據(jù)庫操作相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2019-03-03
  • php post換行的方法

    php post換行的方法

    在本篇文章里小編給大家整理了關(guān)于php post換行的方法以及實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-02-02
  • php5.3不能連接mssql數(shù)據(jù)庫的解決方法

    php5.3不能連接mssql數(shù)據(jù)庫的解決方法

    這篇文章主要介紹了php5.3不能連接mssql數(shù)據(jù)庫的解決方法,針對(duì)php5.3之后不支持mssql_connect函數(shù)提供了對(duì)應(yīng)的解決方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • php實(shí)現(xiàn)用于計(jì)算執(zhí)行時(shí)間的類實(shí)例

    php實(shí)現(xiàn)用于計(jì)算執(zhí)行時(shí)間的類實(shí)例

    這篇文章主要介紹了php實(shí)現(xiàn)用于計(jì)算執(zhí)行時(shí)間的類,實(shí)例分析了php計(jì)算運(yùn)行實(shí)現(xiàn)的類實(shí)例與相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • php中自定義函數(shù)dump查看數(shù)組信息類似var_dump

    php中自定義函數(shù)dump查看數(shù)組信息類似var_dump

    本文為大家介紹下在php中自定義函數(shù)dump查看數(shù)組信息,具體示例如下,希望對(duì)大家有所幫助
    2014-01-01
  • 解決laravel 出現(xiàn)ajax請(qǐng)求419(unknown status)的問題

    解決laravel 出現(xiàn)ajax請(qǐng)求419(unknown status)的問題

    今天小編就為大家分享一篇解決laravel 出現(xiàn)ajax請(qǐng)求419(unknown status)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • php實(shí)現(xiàn)的Cookies操作類實(shí)例

    php實(shí)現(xiàn)的Cookies操作類實(shí)例

    這篇文章主要介紹了php實(shí)現(xiàn)的Cookies操作類及其用法實(shí)例,包括了常見了保存、讀取、更新及清除cookie等操作,在需要進(jìn)行cookie操作時(shí)非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

富源县| 洛南县| 永平县| 平昌县| 西平县| 栾川县| 虎林市| 崇礼县| 德阳市| 建宁县| 瑞金市| 凤山县| 章丘市| 巧家县| 方山县| 邓州市| 若羌县| 平安县| 天祝| 德化县| 宣化县| 永济市| 佳木斯市| 汉源县| 吉林省| 盐池县| 五寨县| 奉节县| 牙克石市| 新邵县| 青阳县| 崇信县| 呼和浩特市| 罗源县| 丘北县| 钟祥市| 皋兰县| 怀安县| 长春市| 凤凰县| 临西县|