Php 具有不同会话生存期的Laravel

Php 具有不同会话生存期的Laravel,php,laravel,session,laravel-5,laravel-5.4,Php,Laravel,Session,Laravel 5,Laravel 5.4,问:如何在Laravel 5中创建具有不同生命周期的会话 这个问题不是重复的。我不想使用它进行任何形式的登录或注册。我只想将其存储5分钟,因为获取此数据的调用位于不同的服务器上,需要一段时间才能获取 问题是我有另一个会话需要存储更长时间,并且当前正在使用此会话的全局配置: /* |--------------------------------- | Session Lifetime |--------------------------------- */ 'lifetime' =>

问:如何在Laravel 5中创建具有不同生命周期的会话

这个问题不是重复的。我不想使用它进行任何形式的登录或注册。我只想将其存储5分钟,因为获取此数据的调用位于不同的服务器上,需要一段时间才能获取

问题是我有另一个会话需要存储更长时间,并且当前正在使用此会话的全局配置:

/*
|---------------------------------
| Session Lifetime
|---------------------------------
*/

'lifetime' => 30,
'expire_on_close' => true,

我怎样才能给他们不同的生命?谢谢

对于您的特定情况,您应该使用缓存。我通常会:

$value = Cache::remember('key', now()->addMinutes(5), function () { 
    /* get and return the value if it's not in the cache */ 
});
记住
是一种方便的方法,可以从缓存中获取值,也可以运行回调,将结果放入缓存并返回结果(意味着下一次调用将直接命中缓存)


更多信息可在

下的文档中找到。如果获取其他用户也可以使用的资源速度较慢,则应将其缓存,而不是将其存储在会话中。(对于这种情况,缓存通常是一种合理的解决方案)。使用会话取决于用户的会话cookie。一旦它消失了,它就消失了。嗨,apokryfos,谢谢你的回复!听起来很合理。但它实际上需要每分钟更新一次,但我的宽限是5分钟,以避免在5分钟内延迟调用相同的东西,而且还需要显示正确的数据。它必须更新电视节目的进度条。请给出建议?首先,仔细阅读它会让你了解可以做什么。您仍然可以使用用户的
session()->getId()
作为缓存键的一部分,或者作为缓存标记(如果您希望以每个用户为基础),而不需要以每个用户为基础。我阅读了有关缓存的内容,因此可以使用
缓存(['key'=>'value'],$minutes)进行保存
并使用
$value=cache('key')获取?就是这样吗?我通常做的是
$value=Cache::记住('key',$minutes,function(){/*获取并返回值,如果它不在缓存中*/})本节中提到了这一点,这是一个简单的方便。如果存在,它将从缓存中获取值,否则它将调用函数将结果存储在缓存中,然后返回值。谢谢!如果不是基于每个用户,效果会很好,在我的情况下,这是完美的!:)