2017-09-20 2 views
2

redis 드라이버를 Laravel cache에 연결했습니다.Laravel 5.3을 통해 Redis 캐시에 데이터 저장이 작동하지 않습니다.

구성 :

'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, 
     ], 

한 기본 :

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()을 호출 할 때 기본 저장소에서 가져오고 가져 오는 경우입니다.

해결 방법에는 두 가지가 있습니다.

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 ')' –