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

PHP模塊 Memcached功能多于Memcache

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

打開(kāi)php.ini加上:

extension = "memcached.so"

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

php -m | grep mem

演示Memcached版本的新功能

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

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

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

由于get/set這兩個(gè)動(dòng)作無(wú)法作為一個(gè)原子來(lái)操作,所以當(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版本里提供的功能,說(shuō)白了就是一個(gè)樂(lè)觀鎖的功能,如果你把$token的值var_dump出來(lái),就會(huì)發(fā)現(xiàn)$token其實(shí)就是一個(gè)版本號(hào),如果通過(guò)get得到的$token版本號(hào)在cas的時(shí)候不對(duì)應(yīng),就說(shuō)明已經(jīng)有別的操作更新了,此時(shí)cas操作會(huì)失敗,至于如何繼續(xù)操作,就看你自己了。

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

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

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

總結(jié)

Memcached版本還有很多Memcache沒(méi)有的功能,比如通過(guò)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)開(kāi)發(fā)環(huán)境

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

    這篇文章主要介紹了Mac系統(tǒng)下使用brew搭建PHP(LNMP/LAMP)開(kāi)發(fā)環(huán)境,本文講解了使用Brew手動(dòng)搭建PHP的開(kāi)發(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)日常開(kāi)發(fā)的功能。所以本文便總結(jié)了一些在常見(jiàn)場(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ù)庫(kù)操作示例

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

    這篇文章主要介紹了PHP模型Model類封裝數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式分析了php使用mysqli封裝的針對(duì)數(shù)據(jù)庫(kù)操作相關(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ù)庫(kù)的解決方法

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

    這篇文章主要介紹了php5.3不能連接mssql數(shù)據(jù)庫(kù)的解決方法,針對(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)的問(wèn)題

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

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

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

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

最新評(píng)論

东莞市| 吉隆县| 平顺县| 维西| 九龙坡区| 东至县| 新郑市| 五指山市| 噶尔县| 沅江市| 星子县| 潼南县| 柘城县| 临泽县| 耒阳市| 徐闻县| 上犹县| 建昌县| 惠水县| 应城市| 鹤岗市| 洪雅县| 明水县| 塘沽区| 巩义市| 陇川县| 文水县| 沈丘县| 光泽县| 炎陵县| 托克逊县| 石城县| 盈江县| 房产| 五莲县| 大名县| 大洼县| 青州市| 德令哈市| 抚宁县| 高唐县|