每次点击路线时都要等待大型数据集进行计算,这太糟糕了!而且用户不想等待,现在每个人的保留时间都很短,所以我们几年前就通过使用缓存修复了这个问题。 Laravel 有一个 Cache Fascad 来帮助我们缓存数据,我们一直在使用 Cache::remember(),这是一个很好的方法,可以将一些数据缓存一段时间直到它们过期。
但在最近的一次活动中,Laravel 宣布了 Cache Fascad 中即将推出的新功能,称为“灵活”。它在后台使用了laravel新的defer()函数。
Cache::flexible() 与我们已经熟悉的 Cache::remember() 非常相似,代码变化很少,但对性能影响很大。与 Cache::remember() 不同,您提供两个时间值而不是 1。
如果您传递 5 和 10 作为 Cache::flexible() 的时间范围,那么当用户第一次点击或访问该路线时,用户必须等待这些值被缓存,并且在 5 秒内继续点击路线时那么它只返回与 Cache::remember() 相同的缓存值。但有趣的是,如果用户在 5 到 10 秒的时间范围内(如我们提供的)点击路线,那么 Laravel 仍将在该时间范围内提供第一次访问的缓存值,并启动后台工作程序再次缓存这些值。当用户再次访问该路线时,他会获取刷新数据,但这次无需等待数据被缓存或计算,这与 Cache::remember() 不同。
这对你们中的一些人来说可能很难理解,我建议阅读我写的这篇文章,更深入地介绍它并附有现实生活中的例子:https://laraveleco.com/cache-flexible-method-of-laravel /
以上是Laravel 的新 Cache::flexible()的详细内容。更多信息请关注PHP中文网其他相关文章!