たとえば、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

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
