Redis は、強力なメモリ内キーと値のペアのストレージ データベースです。通常の RDBMS (リレーショナル データベース管理システム) よりも高いパフォーマンスと優れた拡張性を備えています。 Redis の利点の 1 つは、分散システムのコア テクノロジとして使用できることです。この記事では、Redis Cluster の概念と、PHP で Redis Cluster を使用する方法について説明します。
Redis クラスターとは何ですか?
簡単に言うと、Redis クラスターは複数の Redis インスタンスの集合体です。 Redis クラスターを使用すると、さまざまな Redis サーバーにデータを分散して負荷分散を実現し、データ処理能力を向上させることができます。 Redis クラスターは、デフォルトでハッシュ スロット (シャード) の概念を使用して、キーと値のデータをさまざまな Redis インスタンスに分散します。ハッシュ スロットを使用すると、同じキー値を持つデータが同じノード上にあることを保証しながら、データを水平に分割できます。
Redis クラスターの具体的な実装は、クラスターと通信する一連のノードを介して行われます。これにより、ノードの追加または削除、ハッシュ スロットの再配布が可能になります。 Redis クラスターでは、これを実装するには少なくとも 3 つの Redis ノードが必要であり、ノードが多いほどクラスターの信頼性が高くなります。 Redis クラスターは拡張性に優れており、ビジネス ニーズに応じていつでもノードを追加または削除でき、負荷分散を実現するためにデータ シャーディング戦略を調整できます。
PHP での Redis クラスターの使用
PHP ユーザーは、PHP Redis ライブラリを使用して Redis クラスターに接続し、PHP Redis が提供する専用 API を使用して Redis クラスターを操作できます。 PHP Redis は、PHP 用の Redis 拡張ライブラリです。これにより、PHP を使用して、Redis クラスターへの接続など、Redis データベースを操作できるようになります。
PHP Redis では、Redis クラスターに接続する必要があり、Redis クラスターに接続した後、Redis クラスターコマンドを使用して Redis クラスターを操作する必要があります。まず、Redis クラスター クライアント接続を作成する必要があります。この接続では、Redis クラスターが実行されるすべてのノードを含む 1 つ以上の Redis ノードを指定できます。接続コマンドは次のとおりです:
$redis = new RedisCluster(null, ['node1:6379', 'node2:6379', 'node3:6379']);
上記の例では、RedisCluster クラスのコンストラクターを通じて Redis クラスター クライアント接続を作成し、3 つの Redis ノード (node1:6379、node2:6379、node3) を指定しました。 6379。実際の使用では、この接続を他のコードで使用するグローバル変数として指定することができます。
次に、Redis クラスターの操作に使用できる PHP Redis コマンドをいくつかリストします。
$redis->set('foo', 'bar');
$value = $redis->get('foo');
$redis->mset(array('foo' => 'bar', 'baz' => 'bam')); $values = $redis->mget(array('foo', 'baz'));
$redis->eval("return redis.call('set', KEYS[1], ARGV[1])", ['foo', 'bar']);
以上がRedis の Redis クラスターと PHP の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。