検索
ホームページphp教程php手册PHP モジュール Memcached には Memcache より多くの機能があります

たとえば、PECL には Memcache と Memcached という 2 つの 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 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"

次のコマンドでインストールが完了したことを確認できます:

php -m grep mem

Memcached バージョンの新機能をデモンストレーションします

まず、カウンターの初期値が整数であると仮定して問題を作成します。インクリメント メソッドは使用しません。 get/set を通じて毎回 1 つ追加します。

Memcache バージョンでは、次のように続行することしかできません:

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

get/ による 2 つのアクションof 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 のバージョン番号が取得できることがわかります。 through get が cas 操作に対応していない場合は、他の操作が更新されたことを意味します。この時点で cas 操作は失敗します。操作を続行するかどうかは、ユーザー次第です。

注: 競合状況を手動で再現したい場合は、get と cas の間で数秒スリープし、2 つのスクリプトをコピーして、順番に実行します。

ちなみに、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



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境