ホームページ  >  記事  >  バックエンド開発  >  PHP memcached クライアント memcached_PHP チュートリアル

PHP memcached クライアント memcached_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:27:58862ブラウズ

memcache の公式ホームページ: http://pecl.php.net/package/memcache
memcached の公式ホームページ: http://pecl.php.net/package/memcached

以下は、Memcached をインストールする私のプロセスです。 PHP モジュールのバージョン レコード:

wget http://download.tangent.org/libmemcached-0.48.tar.gz
tar zxf libmemcached-0.48.tar.gz
cd libmemcached-0.48
./configure --prefix= /usr/local/ libmemcached --with-memcached
make
make install

wget http://pecl.php.net/get/memcached-1.0.2.tgz
tar zxf memcached-1.0.2.tgz
cd memcached-1.0.2
/usr/local/webserver/php/bin/phpize
./configure --enable-memcached --with-php-config=/usr/local/webserver/php/bin/php-config - -with-libmemcached- dir=/usr/local/libmemcached
make
make install

php.ini
Complete に
extension=memcached.so を追加します

もう 1 つ:
libmemcached をインストールするとき、./configure のみを使用する場合、次のプロンプトが表示される場合があります:
memcached をチェックしています… no
configure: error: “memcached binary が見つかりませんでした”

この 2 つは、使用方法はほぼ同じです。

コードをコピーします コードは次のとおりです:

$mem = new Memcache;
$mem->addServer($memcachehost, '11211'); , '11212'
$mem->set('hx','9enjoy');
echo $mem->get('hx'); md = 新しい Memcached
array($ memcachehost, '11211'),
array($memcachehost, '11212')
);
$md->addServers($servers); echo $md->get('hx');
memcached には、getMulti、getByKey、addServers など、memcache よりも多くのメソッドがあります。 memcached には memcache の connect メソッドがなく、現時点では長い接続をサポートしていません。 memcached はバイナリ プロトコルをサポートしていますが、memcache はサポートしていません。つまり、memcached の方がパフォーマンスが高くなります。
Memcache はネイティブに実装されており、OO インターフェイスと非 OO インターフェイスの両方の共存をサポートします。memcached は libmemcached を使用し、OO インターフェイスのみをサポートします。
より詳しい違い: http://code.google.com/p/memcached/wiki/PHPClientComparison


memcached サーバーは集中型キャッシュ システムであり、分散実装方法はクライアントによって決定されます。
Memcached の分散アルゴリズムには通常 2 つのオプションがあります:
1. hash(key) の結果に従って、モジュラー接続番号の残りが格納されるノード、つまり hash(key)%sessions.size() によって決まります。アルゴリズムはシンプルで高速、優れたパフォーマンスです。ただし、このアルゴリズムには欠点があり、memcached ノードを追加または削除すると、元のキャッシュ データが大規模に無効になり、ノードやキャッシュ データが多数ある場合、ヒット率に大きな影響を与えます。キャッシュを再構築するコストが高すぎるため、2 番目のアルゴリズムを使用します。
2. Consistent Hashing、一貫したハッシュ アルゴリズム、そのノード検索プロセスは次のとおりです:
まず memcached サーバー (ノード) のハッシュ値を見つけ、0 から 232 までのサークル (連続体) 上に設定します。次に、同じ方法を使用して、データを保存しているキーのハッシュ値を見つけ、それをサークルにマッピングします。次に、データがマッピングされている場所から時計回りに検索し、最初に見つかったサーバーにデータを保存します。 2 の 32 乗を超えてもサーバーが見つからない場合は、最初の memcached サーバーに保存されます。

memcache は、設定を行わずに最初の方法を使用します。最初のメソッドを実装するために、memcached は (未確認) を使用するようです:
$md->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);

2 番目の一貫したハッシュ アルゴリズム:

memcache in Add



コードをphp.iniにコピーします

コードは次のとおりです:


Memcache.hash_strategy =consistent
Memcache.hash_function =crc32


memcachedがプログラムに追加されます(未確認)


コードをコピー コードは次のとおりです: $md->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT); $md->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC); ->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);
参考文献:
memcached 配布テストレポート (一貫性のあるハッシュの場合のハッシュ関数の選択):
http://www.iteye.com/topic/346682
php モジュール memcache と memcached の違い: http:// www.jb51.net/article/27366.htm
PHP モジュール: Memcached > Memcache: http://www.jb51.net/article/27367.htm

20110509@@UPDATE:
libmemcached をインストールすると、次のエラー メッセージになります。
make[2]: *** [clients/ms_conn.o] エラー 1
make[2]: Leaving directory `/www/soft/libmemcached-0.48'
make[1]: ** * [all-recursive ] エラー 1
make[1]: ディレクトリ `/www/soft/libmemcached-0.48' を離れます
make: *** [all] エラー 2

configure --disable-64bit CFLAGS 時に追加可能="-O3 - March=i686"
つまり: ./configure --prefix=/usr/local/libmemcached --with-memcached --disable-64bit CFLAGS="-O3 -march=i686"

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/323691.html技術記事 memcache の公式ホームページ: http://pecl.php.net/package/memcache memcached の公式ホームページ: http://pecl.php.net/package/memcached 以下は、Memcached バージョンのPHP モジュール... .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。