使用Redis在Laravel中缓存

时间:2017-01-10 10:36:57

标签: laravel session caching redis

我在laravel中构建应用程序,其中我使用Redis进行缓存。成功存储在缓存中但问题是,我在一个浏览器中运行应用程序并登录成功并存储缓存,现在在另一个浏览器中它将自动登录。

我使用代码存储和加载缓存

if(Cache::has('mykey'))
{
    return Cache::get('mykey');
}
else
{
    // Do some operation and store it in cache
    Cache::put('mykey',content,10);
    // and then return
}

请告诉我有什么问题...... 提前谢谢

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

// Check cache first
$catchPage = Cache::get('mykey');
if ($catchPage != null) {
    return $catchPage;
}
else {
    Cache::tags('tag_name')->put('mykey',$content,10);
    // and then return
}

here获取参考资料。

根据laravel 5.3 Docs
您可以通过store方法访问各种缓存存储。

传递给store方法的密钥应该对应于缓存配置文件中stores存储配置数组中列出的某个存储:

$value = Cache::store('file')->get('foo');

Cache::store('redis')->put('bar', 'baz', 10);

如果您需要从缓存中检索项目然后删除该项目,则可以使用pull方法。与 get 方法一样,如果缓存中不存在该项,则会返回 null

$value = Cache::pull('key');

add 方法只会将项目添加到缓存中(如果缓存存储中尚不存在)。如果项目实际添加到缓存中,该方法将返回 true 。否则,该方法将返回 false:

Cache::add('key', 'value', $minutes);