通过Laravel 5.3将数据存储在Redis缓存中无效

时间:2017-09-20 13:20:28

标签: php laravel caching redis

我刚将/((\d)+)$/ 驱动程序附加到Laravel 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,
        ],

返回一个空字符串。 如果我这样做:

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

它返回' baz'。但是如果我删除 Cache::put('bar', 'baz', 10); $val = Cache::get('bar'); Log::Debug($val); 方法,则在下次尝试时它将再次返回空字符串。

CLI监视器:

put

哪里弄错了?

2 个答案:

答案 0 :(得分:1)

看起来您的默认驱动程序不是redis。出于这个原因,当您拨打put()get()而未指定您从默认商店购买的store()时。

有两种方法可以解决这个问题。

或者,将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);

答案 1 :(得分:0)

CACHE_DRIVER中找到.env,然后对其进行编辑:

CACHE_DRIVER=redis //the default is file