0

私はlaravel 5.2を使用していて、マルチサーバー自動スケーリングのアーキテクチャを持っています。集中した場所にセッションとキャッシュを持ちたい。私は同じもののためにAWS elasticacheを使いたい。Elasticache PHP Redis AWSはLaravelで例外を移動しました

私はelasticache Redisのクラスターは、以下のオプション持つセットアップを持っている:

パラメータグループ:3つの 総ノード::私が持っているlaravelセッション構成で9

シャードdefault.redis.3.2.cluster.onをセッションドライバとしてredisを設定します。

REDIS_HOST = my_aws_elasticache_configuration_endpoint REDIS_PASSWORD =ヌル REDIS_PORT = 6379 :Redisの構成が設定されているdatabase.phpでは

は、私は、次の使用しています。

私はそれを使用しようとすると、私は次のエラーを取得する:私は地元のRedisを使用してみました、それが働いていたので、predisが正常に動作している6379

は13841 some_ip_address_of_awsを動かしました。私はソリューションをオンラインでチェックしようとしましたが、解決策を得ることはできませんでした。私は設定エンドポイントが私が持っている9ノードのうち、利用可能なノードのURLにredis接続をリダイレクトしようとしていると思います。しかし、私はAWSが内部的にそれを行い、例外をスローしないことを期待しています。誰でも助けてくれますか?

答えて

0

私は最終的に答えを得ました。データベース設定でクラスタモードを有効にし、新しいクラスタオプションをredisに設定する必要があります。これは、database.phpで中のRedisの設定がどのように見えるかです:

'redis' => [ 
    'client' => 'predis', 
    'options' => [ 
     'cluster' => 'redis', 
    ], 
    'clusters' => [ 
     'default' => [ 
      [ 
       'host' => env('REDIS_HOST', 'localhost'), 
       'password' => env('REDIS_PASSWORD', null), 
       'port' => env('REDIS_PORT', 6379), 
       'database' => 0, 
      ], 
     ], 
    ], 
], 

あなたはpasswordmを持っているなら、あなたはこれでオプション配列を置き換えることができます。

'options' => [ 
     'cluster' => 'redis', 
     'parameters' => ['password' => env('REDIS_PASSWORD', null)], 
    ], 
関連する問題