ホームページ >php教程 >php手册 >出典: link タグ:phpmemcachedクライアントmemcached

出典: link タグ:phpmemcachedクライアントmemcached

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-21 08:53:581040ブラウズ

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

以下はPHP モジュールのプロセス レコードの Memcached バージョンをインストールした方法:

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 に
extension=memcached.so を追加
Complete

別の:
libmemcached をインストールするとき、./configure のみを使用する場合
checking for memcached… no
configure: error: “could not find memcached binary”

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

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


$mem = 新しい Memcache;
$mem->addServer($memcachehost, '11211');
$mem->addServer($memcachehost, '11212'); ->set('hx','9enjoy');
echo $mem->get('hx');


コードをコピー

コードは次のとおりです: $md = 新しい Memcached;

$servers = array(

array($memcachehost, '11211'),
array($memcachehost, '11212')
); $md->addServers($servers);
$md->set('hx','9enjoy');
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)% セッションを保存するかが決まります。 size()、このアルゴリズムはシンプルで高速で、パフォーマンスも優れています。ただし、このアルゴリズムには欠点があり、memcached ノードを追加または削除すると、元のキャッシュ データが大規模に無効になり、ノードやキャッシュ データが多数ある場合、ヒット率に大きな影響を与えます。キャッシュを再構築するコストが高すぎるため、2 番目のアルゴリズムを使用します。
2. Consistent Hashing、一貫したハッシュアルゴリズム、そのノード検索プロセスは次のとおりです:
まず、memcached サーバー (ノード) のハッシュ値を見つけ、それを 0 ~ 232 の上位のサークル (連続体) に設定します。 。次に、同じ方法を使用して、データを保存しているキーのハッシュ値を見つけ、それをサークルにマッピングします。次に、データがマッピングされている場所から時計回りに検索し、最初に見つかったサーバーにデータを保存します。 2 の 32 乗を超えてもサーバーが見つからない場合は、最初の memcached サーバーに保存されます。

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

2 番目の一貫したハッシュ アルゴリズム:
php.ini に
memcache



を追加します。 コードをコピーします

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

Memcache.hash_strategy =consistent Memcache.hash_function =crc32

プログラムに memcached を追加します (未確認)




コードをコピーします


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

$ mem->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT); $mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);
参考資料:
memcached 配布テストレポート (一貫性のあるハッシュの場合のハッシュ関数の選択):
http://www.iteye.com/topic/346682
php module 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]: *** [すべて再帰] エラー 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"



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