Я пытаюсь установить одну конфигурацию Redis в database.php
, чтобы охватить как локальные, так и производственные (Redis Cluster) среды в Laravel (5.8).
Эта конфигурация работает с моей локальной (* 1004)*) Экземпляр Redis:
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
И это работает с моим производственным (APP_ENV=production
) кластером 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,
],
],
],
],
Я хочу установить одну конфигурацию, чтобы, если APP_ENV=local
установлен, мой локальный экземпляр Redis используется, и настройка APP_ENV=production
использует мой кластер Redis.
Я попытался сделать следующее (с REDIS_CLUSTER
установленным в true) в моей среде APP_ENV=production
:
'redis' => [
'client' => 'predis',
'cluster' => env('REDIS_CLUSTER', false),
'options' => [
'cluster' => 'redis',
],
'clusters' => [
'default' => [
[
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
],
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
, но это не с ошибкой MOVED .
Я разместил вопрос на laracasts.com / обсуждения , но это заставило меня запутаться, как мне кажетсяпредложить обновить код приложения (а не конфигурацию Redis в database.php
), чтобы приспособить обе среды.Я чувствую, что мне не хватает чего-то очевидного в том, как должна работать конфигурация.