2017-01-10 50 views
1

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

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

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 
} 

请告诉我什么是错的... 由于事先

+0

您需要使用会话缓存,而不是文件缓存到单独的客户端缓存。 –

+1

访问您网站的每个人的缓存始终相同。我认为你需要的是[会话](https://laravel.com/docs/5.3/session)。 – Jerodev

回答

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
您可以通过店内的方法访问各种缓存存储。

传递给存储方法的关键应该对应于你的缓存配置文件存储配置阵列中列出的商店之一:

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

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

如果需要从缓存中检索项目,然后删除该项目,你可以使用拉方法。像得到方法,如果该项目不存在于缓存中将返回:

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

添加方法的项目,如果它不已经存在,只会增加缓存缓存存储。如果项目实际添加到缓存中,该方法将返回true。否则,该方法将返回

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

谢谢你的回答@AddWeb Solution Pvt Ltd – Ravi9994

+0

我的回答解决了这个问题? –

+0

一点也不照你说的添加和拉法是有编辑值@ AddWeb解决方案私人有限公司 – Ravi9994