2017-09-20 11 views
2

redisドライバをLaravel cacheに接続しました。Laravel 5.3経由でRedis Cacheにデータを保存すると動作しません

設定:

'redis' => [ 
     'driver' => 'redis', 
     'client' => 'predis', 
     'cluster' => false, 

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

基本的な1:

Cache::store('redis')->put('bar', 'baz', 10); 
    $val = Cache::get('bar'); 
    Log::Debug($val);` 

それは空の文字列を返します。 私が行う場合:

「baz」を返します。しかし、putメソッドを削除すると、次の試行で空の文字列が再び返されます。

CLIモニタ:私はそれが間違って取得

1505914946.350596 [0 127.0.0.1:39102] "SELECT" "0" 1505914946.351143 [0 127.0.0.1:39102] "SETEX" "laravel:bar" "600000" "s:3:\"baz\";"

答えて

1

デフォルトのドライバがredisではないようです。このため、store()を指定せずにput()またはget()と呼んでいるときは、デフォルトストアから取得して取得します。

これを解決するには2通りの方法があります。

redisをデフォルトストアに設定してください(config/cache.php参照)。次に:

Cache::put('bar', 'baz', 10); 
$val = Cache::get('bar'); 
Log::Debug($val); 

redisストアにアクセスするだけです。

それとも、あなたが取得を入れたときにストアを指定:

Cache::store('redis')->put('bar', 'baz', 10); 
$val = Cache::store('redis')->get('bar'); 
Log::Debug($val); 
+0

ありがとうございます!最初のものは動作しませんが、私は日付を取得するときに私は店を指定する場合は動作します。乾杯! –

+0

確かです。 'config/cache.php'の' default'の値は何ですか? – tptcat

+0

'' default '=> env(' CACHE_DRIVER '、' redis ') ' –

関連する問題