如何在 Laravel 模型层实现高效的数据缓存策略?

2026-04-28 17:010阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1602个文字,预计阅读时间需要7分钟。

如何在 Laravel 模型层实现高效的数据缓存策略?

您在之前可能已经了解过模型数据缓存,但今天我将向您展示一个更详细的Laravel模型缓存技术。这是我最初在RailsCasts上学习到的技术。

使用模型缓存时,我们可以通过一个唯一的缓存键来访问缓存数据。您可以使用以下方式引用:您可以使用一个唯一的缓存键。

您在此之前可能就已经缓存过模型数据,但是我将向您展示一个使用动态记录模型的更精细的 Laravel 模型缓存技术,这是我一开始在 RailsCasts 学习到的技术。

使用模型的唯一缓存键,您可以缓存模型(或关联模型)更新时自动更新(以及缓存失效)的模型上的属性和关联,一个好处是访问缓存的数据比在控制器中缓存的数据更具可复用性,因为它在模型上而不是在单个控制器方法中。

这是这个技术的要点:

假设你有很多个 Comment 的 Article 模型,给定下面的 Laravel blade 模板,你就可以像下面这样访问 /article/:id 路由时得到评论的数量:

<h3>$article->comments->count() {{ str_plural('Comment', $article->comments->count())</h3>

您可以在控制器中缓存评论的计数,但是当您有多个需要缓存的一次性查询和数据时,控制器会变得非常臃肿难看。使用控制器,访问缓存的数据也不是很方便。

阅读全文

本文共计1602个文字,预计阅读时间需要7分钟。

如何在 Laravel 模型层实现高效的数据缓存策略?

您在之前可能已经了解过模型数据缓存,但今天我将向您展示一个更详细的Laravel模型缓存技术。这是我最初在RailsCasts上学习到的技术。

使用模型缓存时,我们可以通过一个唯一的缓存键来访问缓存数据。您可以使用以下方式引用:您可以使用一个唯一的缓存键。

您在此之前可能就已经缓存过模型数据,但是我将向您展示一个使用动态记录模型的更精细的 Laravel 模型缓存技术,这是我一开始在 RailsCasts 学习到的技术。

使用模型的唯一缓存键,您可以缓存模型(或关联模型)更新时自动更新(以及缓存失效)的模型上的属性和关联,一个好处是访问缓存的数据比在控制器中缓存的数据更具可复用性,因为它在模型上而不是在单个控制器方法中。

这是这个技术的要点:

假设你有很多个 Comment 的 Article 模型,给定下面的 Laravel blade 模板,你就可以像下面这样访问 /article/:id 路由时得到评论的数量:

<h3>$article->comments->count() {{ str_plural('Comment', $article->comments->count())</h3>

您可以在控制器中缓存评论的计数,但是当您有多个需要缓存的一次性查询和数据时,控制器会变得非常臃肿难看。使用控制器,访问缓存的数据也不是很方便。

阅读全文