首頁 後端開發 php教程 memcache PHP模組 Memcached功能多於Memcache

memcache PHP模組 Memcached功能多於Memcache

Jul 29, 2016 am 08:45 AM
memcache

比如說PECL裡有兩個Memcached的模組,Memcache和Memcached,目前大部分PHP環境裡使用的是名字裡不帶d的Memcache版本,這個版本釋出的比較早,是一個原生版本,與之對應的帶d的Memcached版本則是建立在libmemcached的基礎上,所以說Memcached版本的功能更全一些。
安裝Memcached版本的PHP模組
wget http://download.tangent.org/libmemcached-0.35.tar.gz
tar zxf libmemcached-0.35.tar.gz
cd 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.🎜>開啟php.ini加上:
extension = "memcached.>這樣安裝就結束了,你可以透過下列指令來確認:
php -m | grep mem
示範Memcached版本的新功能
先虛構一個問題,假設counter初始值是一個整數,不使用increment方法,透過get/set完成每次加一。
在Memcache版本裡,我們只能按照大致如下的方式來進行:
$m = new Memcache();
$m->addServer('localhost', 11211);
$ v = $m->get('counter');
$m->set('counter', $v + 1);
由於get/set這兩個動作無法作為一個原子來操作,所以當多個進程同時處理時,會出現失去的可能,更惱人的是,你根本就不知道什麼時候會遺失。
再看看Memcached版本裡,我們是如何做的:
$md = new Memcached();
$md->addServer('localhost', 11211);
$v = $ md->get('counter', null, $token)
$md->cas($token, 'counter', $v + 1);
cas是Memcached版本裡提供的功能,說穿了就是一個樂觀鎖的功能,如果你把$token的值var_dump出來,你會發現$token其實就是一個版本號,如果透過get得到的$token版本號在cas的時候不對應,就表示已經有別的操作更新了,此時cas操作會失敗,至於如何繼續操作,就看你自己了。
註:如果你想手動重現衝突的情況,可在get和cas之間sleep若干秒,並拷貝兩份腳本,先後執行。
順便說一句,建議的Memcached版本模組的雜湊設定如下:
$md->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$md->setOption(Memcached:: OPT_HASH, Memcached::HASH_CRC);
總結
Memcached版本還有很多Memcache沒有的功能,例如透過getByKey, setByKey等自動支援多個伺服器,就不贅述了,該用哪個擴充已經不言自明了。
補充:http://code.google.com/p/memcached/wiki/PHPClientComparison

以上就介紹了memcache PHP模組 Memcached功能多於Memcache,包括了memcache方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用PHP開發中的Memcache? 如何使用PHP開發中的Memcache? Nov 07, 2023 pm 12:49 PM

如何使用PHP開發中的Memcache?

利用Memcache快取技術提升PHP應用的同時處理能力 利用Memcache快取技術提升PHP應用的同時處理能力 May 18, 2023 am 08:12 AM

利用Memcache快取技術提升PHP應用的同時處理能力

PHP開發中如何使用Memcache進行高效率的資料讀寫操作? PHP開發中如何使用Memcache進行高效率的資料讀寫操作? Nov 07, 2023 pm 03:48 PM

PHP開發中如何使用Memcache進行高效率的資料讀寫操作?

如何使用Memcache優化你的PHP應用中的資料儲存操作? 如何使用Memcache優化你的PHP應用中的資料儲存操作? Nov 08, 2023 pm 09:06 PM

如何使用Memcache優化你的PHP應用中的資料儲存操作?

PHP開發中如何使用Memcache實現高效的資料快取和排序操作? PHP開發中如何使用Memcache實現高效的資料快取和排序操作? Nov 07, 2023 pm 02:28 PM

PHP開發中如何使用Memcache實現高效的資料快取和排序操作?

PHP開發中如何使用Memcache進行分散式快取? PHP開發中如何使用Memcache進行分散式快取? Nov 07, 2023 pm 03:04 PM

PHP開發中如何使用Memcache進行分散式快取?

Memcache快取技術在PHP專案的應用與實踐 Memcache快取技術在PHP專案的應用與實踐 May 17, 2023 pm 02:10 PM

Memcache快取技術在PHP專案的應用與實踐

如何使用PHP中的Memcache快取技術來提高網站的大並發效能 如何使用PHP中的Memcache快取技術來提高網站的大並發效能 May 17, 2023 pm 05:00 PM

如何使用PHP中的Memcache快取技術來提高網站的大並發效能

See all articles