ホームページ  >  記事  >  バックエンド開発  >  PHPでRedisクラスターを呼び出す方法

PHPでRedisクラスターを呼び出す方法

(*-*)浩
(*-*)浩オリジナル
2019-09-29 14:15:432542ブラウズ

現在使用している php の主な redis 拡張機能は 2 つあります:

PHPでRedisクラスターを呼び出す方法

phpredis。これは c An を使用します。 PHP の効率的な拡張機能である predis は、PHP コードで書かれており、非常に頻繁に使用されています。

phpredis (PHP 拡張機能) メソッド (推奨学習: PHP ビデオ チュートリアル )

1. phpredis スタンドアロン メソッド

<?php
$client = new Redis();
$client->connect(&#39;10.30.5.163&#39;, &#39;7000&#39;);
echo $client->get(&#39;new_item_key:d89b561fb759fd533a8c2781ef15dd5f&#39;);

phpredis クラスターの使用法

<?php
$redis_list = [&#39;10.30.5.162:7000&#39;,&#39;10.30.5.163:7000&#39;,&#39;10.30.5.163:7001&#39;];
$client = new RedisCluster(NUll,$redis_list);
echo $client->get(&#39;new_item_key:d89b561fb759fd533a8c2781ef15dd5f&#39;);

コードの説明

最初のパラメーターには NULL を渡します。理由がわかりません。とにかく、ドキュメントが見つからず、この記事も理解できませんでした。

2 番目のパラメーターは、接続する必要がある Redis クラスターのマスターサーバーのリストです。マスターが 3 つあるので、3 つだけ入力します。マスター ノードまたはスレーブ ノードを入力することもできますが、パフォーマンスが異なります。パート 4

3 を参照してください。クラスターの原則

なぜ redisCluster は任意のノード アドレスを入力することで操作できるのですか?

クラスター モードでは、Redis がキー関連のコマンドを受け取ると、最初にキーに対応するスロットを計算します。

スレーブ ノードが初期化されている場合、redis コマンドが最初にスレーブ ノードに送信されます。

スレーブ ノードは、スロットに従って対応するノードを見つけます。ノードがそれ自身の場合、キー コマンド処理されます;

MOVED 自体が処理されない場合、MOVED はエラーをリダイレクトし、クライアントに正しいノードを要求するように通知します。この処理をMOVEDリダイレクションと呼びます

PHPでRedisクラスターを呼び出す方法

リダイレクション情報には、キーに対応するスロットとそのスロットを担当するノードアドレスが含まれています。クライアントは、正しいノードへのリクエストを開始できます。

phpredis クライアントは、データを取得するためのリダイレクト情報に基づいて、キーが配置されているノードへのリクエストを直接開始できます。

predis クラスター モードを使用する

<?php
use Predis\Client;
require __DIR__ . &#39;/../vendor/autoload.php&#39;;
$redis_list = [
        &#39;tcp://10.30.5.163:7000&#39;,
        &#39;tcp://10.30.5.163:7001&#39;,
        &#39;tcp://10.30.5.162:7000&#39;
];
$redis = new Client($redis_list, [&#39;cluster&#39;=>&#39;redis&#39;]);
echo $redis->get(&#39;new_item_key:d89b561fb759fd533a8c2781ef15dd5f&#39;)

以上がPHPでRedisクラスターを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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