前提・実現したいこと
PHP(Laravel7)で管理画面のあるシステムを開発しています。
ログインセッションとDB照会結果(配列)をredisに格納する様に設計しています。
そのさい
- ログインセッションはユーザー毎に持ち
- DB照会結果は、ユーザー間で共有してin_arrayなどできる様にしたい
と思っており、クラスター構成のElasticCacheは構築済みです。
別途、クラスター構成になっていないElasticCacheも構築済みですが、
Session::既存のクラスター構成のElasticCacheに接続
Cache::親切したクラスター構成でないElasticCacheに接続
出切ればと思っています
発生している問題・エラーメッセージ
AWSのelasticCacheで、cluster接続している場合
Cache::hasやCache::getした際に
`SELECT` failed: ERR SELECT is not allowed in cluster mode [tls://hogeohge.cache.amazonaws.com:6379]
と表示され、cacheの取得など不可能な状態です。
該当のソースコード
app/confid/database.phpは以下の様になっています
php
1'redis' => [ 2 3 'client' => env('REDIS_CLIENT', 'phpredis'), 4 'cluster' => env('REDIS_CLUSTER', false), 5 6 'options' => [ 7 'parameters' => [ 8 'password' => env('REDIS_PASSWORD', null), 9 'scheme' => env('REDIS_SCHEME', 'tcp'), 10 ], 11 'ssl' => [ 12 'verify_peer' => false 13 ], 14 ], 15 16 'cache' => [ 17 'url' => env('REDIS_URL'), 18 'host' => env('REDIS_HOST', '127.0.0.1'), 19 'password' => env('REDIS_PASSWORD', null), 20 'port' => env('REDIS_PORT', '6379'), 21 'database' => env('REDIS_CACHE_DB', '1'), 22 ], 23 24 'clusters' => [ 25 'default' => [ 26 [ 27 'scheme' => env('REDIS_SCHEME', 'tcp'), 28 'host' => env('REDIS_HOST', '127.0.0.1'), 29 'password' => env('REDIS_PASSWORD', null), 30 'port' => env('REDIS_PORT', 6379), 31 'database' => env('REDIS_DB', 0), 32 ] 33 ], 34 'options' => [ 35 'cluster' => 'redis', 36 ], 37 ], 38 39],
補足情報(FW/ツールのバージョンなど)
AWS EC2で構築中です。
あなたの回答
tips
プレビュー