簡體   English   中英

通過Laravel 5.3將數據存儲在Redis緩存中無效

[英]Store data in Redis Cache via Laravel 5.3 is not working

我只是將redis驅動程序附加到Laravel 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,
        ],

一個基本的:

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

它返回一個空字符串。 如果我做:

  Cache::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\\";"

哪里弄錯了?

看起來您的默認驅動程序不是redis 因此,當您調用put()get()而不指定store()您將從默認存儲中進行調用。

有兩種方法可以解決這個問題。

或者,將redis config/cache.php默認存儲(請參閱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);

找到CACHE_DRIVER.env ,然后進行編輯:

CACHE_DRIVER=redis //the default is file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM