Redis CLI - ключи доступа от Laravel кеш соединения - PullRequest
0 голосов
/ 15 января 2020

Я могу подключиться к своему экземпляру Redis через cli с помощью следующего кода:

redis-cli -p 6999 -a password

порт и пароль изменены в целях безопасности.

И это открывает REPL Redis, и Я вижу все ключи на моем экземпляре Redis через keys *.

Однако, на самом деле, он не показывает мне ВСЕ мои ключи. Я использую Laravel Cache с драйвером redis (интерфейс Cache::remember), а внутри Laravel я могу перечислить все ключи через $keys = Redis::connection('cache')->keys('*'); - и это показывает мне совершенно другой список из того, что я вижу в repl.

Любой ключ, который я установил в Laravel через соединение по умолчанию, отображается в cli repl, но не любой ключ, установленный через кеш.

Есть ли способ увидеть ключи, установленные через ::connection('cache') в клипе?

1 Ответ

1 голос
/ 15 января 2020

Возможно, вы используете несколько баз данных Redis.

Вы можете узнать, в какой базе данных хранится ваш кеш, посмотрев на config/database.php

   /*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer body of commands than a typical key-value system
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */

    'redis' => [
        'client' => env('REDIS_CLIENT', 'phpredis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix'  => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
        ],

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

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

Для переключения между базами данных в redic-cli вы можете выполнить следующую команду в CLI:

SELECT 1

Если вы явно не обновили свой файл .env настройками базы данных кеша, то ваш кеш будет в БД 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...