[英]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.