内容的最佳缓存时间Laravel

时间:2019-02-11 20:17:50

标签: php laravel

我有一个问题。我什么时候需要在Cache中传递更多帖子?我在MainController上有代码:

$posts = Cache::rememberForever('posts', function() {
    return Post::active()->paginate(15);
});

return view('posts', compact('posts); 

我可以永远缓存吗?

注意:在我的帖子模型中,我有全局观察者:createddeletedupdatedsaved。在所有这些观察者中,我都这样做:Cache::forget('posts')。怎么会最好?永久缓存或按时缓存帖子(10分钟)。请帮我决定。发布信息非常活跃,正在添加...间隔:10、20、30分钟

2 个答案:

答案 0 :(得分:0)

通常,您应该尽可能长时间地缓存,以最大程度地提高页面加载速度,但不要超过您期望的新内容显示的时间...否则,没有人会看到新内容。

您可以缓存10或30分钟,因为您仅每10-30分钟添加一次新帖子。

如果您永久缓存,则缓存后将看不到任何新帖子。除非您手动清除缓存。

答案 1 :(得分:0)

首先,您需要根据业务领域和需求来决定,实时帖子​​将保留什么值与缓存过期后显示的帖子相比。

例如,如果它是一个普通博客,则可能在创建完之后没有立即显示它,并且一旦清除了当前缓存,就将其保存在缓存中可能很好。如果是实时库存申请,那么每秒钟的延迟都很重要。

根据活跃的用户,每小时添加的帖子数量,您可以确定缓存记忆时间的重心。也许您的情况是20-30分钟就可以了。没有标准的理想时间来将值保存在缓存中。

有时候,由于不太重要的原因,您可以避免忘记/清除缓存。例如,您缓存了100个帖子,而删除了一个帖子。您可以避免重建99个帖子高速缓存,但在缓存中删除第100个帖子。当用户单击它进入其详细信息页面时,您可以说您请求的页面不再可用。对于更新等同样如此。