Рубрики
Uncategorized

Laravel настраивает несколько библиотек Redis

Автор оригинала: David Wong.

Представил

После компиляции, установки и установки расширений Redis готов к нормальному использованию. Но в laravel необходимы другие операции .

Расширение для установки

Чтобы использовать Redis в laravel, вам необходимо установить его p redis Развернуть. Используйте composer требуется предис/предис Просто установите его.

Изменить конфигурацию

  1. Redis настроен в config/база данных. php Документы, в соответствии с необходимостью изменения, мне не нужно изменять здесь;
  2. Установите кэш по умолчанию в кэш Redis, в .evn В файле CACHE_DRIVER=redis ;
  3. Установите драйвер сеанса в Redis, в .env В файле SESSION_DRIVER=redis ;

Настройка нескольких библиотек

После приведенной выше конфигурации несколько служб используют Redis, что явно неразумно, если все они используют одну и ту же библиотеку. Мы можем настроить несколько подключений для решения этой проблемы. Redis по умолчанию имеет 16 библиотек, установленных на сервере redis.conf Из базы данных Значения могут быть изменены. Давайте сначала посмотрим на это. config/database.php Подключение по умолчанию

'redis' => [

        'client' => 'predis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],

        'cache' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_CACHE_DB', 1),
        ],
    
    ],

По умолчанию существует два соединения. по умолчанию и кэш . Теперь давайте посмотрим на это. config/cache.php Конфигурация Redis

'redis' => [
            'driver' => 'redis',
            'connection' => 'cache',
        ],

Вы можете это видеть. подключение Значение равно кэш , то есть используйте config/database.php Средний Redis кэш 。 Изменить ниже config/database.php Редактирует, добавляет подключение к сеансу следующим образом

'redis' => [

        'client' => 'predis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],

        'cache' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_CACHE_DB', 1),
        ],

        'session' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_SESSION_DB', 2),
        ],

    ],

Далее .env Добавить в SESSION_CONNECTION=сеанс

тест

После описанной выше операции он был изменен. Подводя итог, это по умолчанию Использование 0 библиотек, кэш Использование 1 библиотеки, сеанс Используются две библиотеки. Используйте следующий код для тестирования

/**
     * Testing Redis storage
     */
    public function testRedis()
    {
        // Redis facade
        Redis::setex('facades', 30, 'i am facades');
        // Cache
        Cache::put('cache', 'i am cache', now()->addMinute(30));
        // Because Cache defaults to Redis, all are the same as the above statement
        // Cache::store('redis')->put('cache', now(), now()->addMinute(30));
    }

После запуска приведенного выше кода используйте его на сервере redis-cli Давайте посмотрим на хранилище.

Вы можете увидеть, как хранится каждое хранилище.

  1. Используйте операцию фасада Redis, по умолчанию config/database.php Средний Redis по умолчанию Подключение и хранение данных в библиотеке 0.
  2. Используйте кэш, потому что config/cache.php Средний Redis подключение Установлено в кэш Конечно, это библиотека.
  3. Сеанс также основан на SESSION_CONNECTION=сеансе Конфигурации, правильно сохраненной в 2 библиотеках;

При использовании фасадов Redis вы также можете указать подключения

$redis = Redis::connection('session');
$redis->setex('facades_connection', 30, 'i am facades_connection');

Ссылка: документ Laravel Redis.