PHP で Redis 哨兵モードを設定するには

PHPでRedis Sentinelモードを設定するには、Redisサーバーに接続する前にいくつかの設定を行う必要があります。以下に設定の例を示します。

  1. まず、Redis拡張機能がインストールされていることを確認します。php -m | grep redisコマンドを実行することで、拡張機能がインストールされているかどうかを確認できます。
  2. PHPプロジェクトでRedisに接続するには、Predisライブラリを使用します。PredisライブラリはComposer経由でインストールできます。次のコマンドを実行してください。
composer require predis/predis
  1. redis_sentinel.php
<?php
require 'vendor/autoload.php';

$sentinel = new Predis\Client([
    'scheme' => 'tcp',
    'host' => '127.0.0.1',
    'port' => 26379,
]);

$master = $sentinel->sentinel('get-master-addr-by-name', 'mymaster');

$redis = new Predis\Client([
    'scheme' => 'tcp',
    'host' => $master[0],
    'port' => $master[1],
]);

// 现在可以使用$redis对象来执行Redis命令
$redis->set('key', 'value');
$value = $redis->get('key');
echo $value;

上記の例では、まずPredisクライアントを作成して、Redisの哨兵サーバー(ポートはデフォルトで26379)に接続します。次に、sentinelメソッドを使用して、プライマリサーバーのアドレスとポートを取得します。最後、その情報を使用してRedisプライマリサーバに接続します。これで、$redisオブジェクトを使用してRedisのコマンドを実行できるようになりました。

なお、上記の例は、Predisライブラリのみで利用可能です。異なるRedisライブラリを使用している場合は、設定方法が異なる場合があります。詳細については、関連ドキュメントを参照してください。

bannerAds