我可以使用以下代码通过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')
设置的键吗?
答案 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中