質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

3598閲覧

laraveでのredisでマスター・スレーブ(複数)構成のdatabase.phpの設定方法は?

akasatanaha

総合スコア44

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2017/10/31 03:32

編集2017/11/01 04:22

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2017/10/31 03:37

設定ファイルの内容を記載いただいているコード部分のレイアウト崩れて見にくいので、 コードの前後を ``` で囲っていただけないでしょうか? (または、コード部分を選択して、<CODE> ボタンを押す。)
akasatanaha

2017/10/31 04:25

すみません。対応いたしました。
aro10

2017/10/31 04:31

上手くいかないというのは、どのような現象やエラーが発生しているかも記載するとより適切な回答を得やすいかと思います。
CHERRY

2017/10/31 04:32

うまくいかないとは、どの様なエラーが出ているのでしょうか? laravel 、redis それぞれのログに何か記録されていませんか?
akasatanaha

2017/10/31 04:58

エラーログを記載しました。おそらくは、redis の connection の name が取れていないためだとは思います。
guest

回答2

0

[メモ] Laravelでマスタ/スレーブ設定のRedisを使う
こちらに書いてある設定ではどうでしょうか?

また、現在connectionsの中にredisの設定を入れているように見えますがredisの設定は別に下に存在します。

投稿2017/10/31 11:11

編集2017/10/31 11:11
fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akasatanaha

2017/11/01 01:58

回答ありがとうございます。 redisの設定が他で設定しているのは、試してみました。 また頂いたURLのものですが マスタースレーブ構成でread と write を意識しないで使えそうですが、 このマスタースレーブ構成を複数設定するのを求めていますので 上記設定だと実現できそうにないです。 質問にもう少し詳しく書いておけばよかったです。失礼いたしました。
guest

0

ベストアンサー

ちょっと時間がなくて試していませんが...

Laravel 5.1 での情報で、Qiita に [メモ] Laravelでマスタ/スレーブ設定のRedisを使う という記事があります。

こちらの設定ファイルの書式だとどうでしょうか?

投稿2017/10/31 04:35

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akasatanaha

2017/10/31 04:57

こちらだと複数のredisサーバーへのアクセスが実現出来ないかと思います。
akasatanaha

2017/10/31 05:05 編集

↑少し言葉足らずでした。 main と sub があって それぞれがマスタースレーブ構成になっているというのを求めております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問