laravel5.5になります
laravelにてmysqlでのマスタースレーブ(複数)構成は
database.phpで
以下のように設定するかと思いますが、
redisの場合、以下のmysqlと同じ構成で設定したい場合
どのように設定すればよいのでしょうか?
laravel recipes によると同じように設定すればいいよ!
と記載されているのですが、
同じように設定しても Redis::connection('redisMain') などとしても
name を解決できないみたいで正しく呼び出せていないようです。
'connections' => [ #### mysql の設定 'mysqlMain' => [ 'read' => [ 'host' => array('192.168.1.11','192.168.1.12') ], 'write' => [ 'host' => '192.168.1.13' ], 'driver' => 'mysql', 'database' => 'database', 'username' => 'user', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ], 'mysqlSub' => [ 'read' => [ 'host' => array('192.168.1.11','192.168.1.12') ], 'write' => [ 'host' => '192.168.1.13' ], 'driver' => 'mysql', 'database' => 'database', 'username' => 'user', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ], 'redisMain' => [ 'read' => [ 'host' => array('127.0.0.1','127.0.0.2') ], 'write' => [ 'host' => '127.0.0.1' ], 'driver' => 'redis', 'port' => env('REDIS_PORT', 6379), 'password' => env('REDIS_PASSWORD', null), 'database' => 0, ], 'redisSub' => [ 'read' => [ 'host' => array('127.0.0.1','127.0.0.2') ], 'write' => [ 'host' => '127.0.0.1' ], 'driver' => 'redis', 'port' => env('REDIS_PORT', 6379), 'password' => env('REDIS_PASSWORD', null), 'database' => 0, ], ], ※IPなどは適当です。 呼び出し方: Redis::connection('redisMain')->set('hoge', 'fuga'); エラーログ: array_key_exists() expects parameter 2 to be array, null given {"exception":"[object] (ErrorException(code: 0): array_key_exists() expects parameter 2 to be array, null given at XXX/vendor/laravel/framework/src/Illuminate/Support/Arr.php:151)
設定ファイルの内容を記載いただいているコード部分のレイアウト崩れて見にくいので、 コードの前後を ``` で囲っていただけないでしょうか? (または、コード部分を選択して、<CODE> ボタンを押す。)
すみません。対応いたしました。
上手くいかないというのは、どのような現象やエラーが発生しているかも記載するとより適切な回答を得やすいかと思います。
うまくいかないとは、どの様なエラーが出ているのでしょうか? laravel 、redis それぞれのログに何か記録されていませんか?
エラーログを記載しました。おそらくは、redis の connection の name が取れていないためだとは思います。
回答2件
あなたの回答
tips
プレビュー