Redis CLI-通过Laravel缓存连接访问密钥

时间:2020-01-15 15:09:54

标签: laravel redis

我可以使用以下代码通过cli连接到Redis实例:

redis-cli -p 6999 -a password

出于安全目的更改了端口和密码。

这将打开一个redis REPL,我可以通过keys *看到Redis实例上的所有键。

但是,实际上并没有显示我所有的钥匙。我将Laravel Cache与redis驱动程序(Cache::remember界面)配合使用,并且在Laravel内部,我可以通过$keys = Redis::connection('cache')->keys('*');列出所有键-这向我展示了与我看到的列表非常不同的列表。

我通过默认连接在Laravel中设置的任何密钥都显示在cli repl中,但没有通过缓存设置的任何密钥。

有什么方法可以查看cli repl中通过::connection('cache')设置的键吗?

1 个答案:

答案 0 :(得分:2)

您可能正在使用多个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文件,则您的缓存将位于DB 1中