首页 > 作文

在 Laravel 6 中缓存数据库查询结果的方法

更新时间:2023-04-08 04:27:48 阅读: 评论:0

在加快应用程序速度方面,缓存可能是最有效的。laravel 预先安装了缓存驱动程序。因此你可以直接使用 redis, memcached 或者使用本地文件进行缓存操作。laravel 附带了此功能。

这一次,我们将讨论直接从模型缓存 eloquent 查询,从而使数据库缓存变的轻而易举。

这个包可以在 github 找到,此文档将介绍该应用程序的所有要点调职。但是,这篇文章,我仅仅介绍缓存和清除缓存的知识。

安装

可以通过 compor 安装

$ compor require rennokki/laravel-eloquent-query-cache

在你的模型中添加 u querycacheable :

u rennokki\q神农温泉uerycache\traits\querycacheable;class article extends model{  触电急救方法u querycacheable;  ...}

默认情况下启动缓存行为

默认情况下,该包不开启查询缓存。为此,可以在模型中添加 $cachefor 变量。

u rennokki\querycache\traits\querycacheable;class article extends model{  u querycacheable;  protected $cachefor = 180; // 3 minutes}

每当执行一个查询时,缓存将会干预。如果此查询在缓存中为空,那么会去数据库中获取数据,并且缓存它,以便下次可以从缓存中获取。如果此查询存在于缓存中,那么直接返回。

// 数据库访问,查询结果存储在缓存中article::latest()->get();// 未访问数据库,查询结果直接从缓存中返回。article::latest()->get();

如果你只是想要避免命中缓存,你可以在命中最后一个方法之前使用 ->dontcache() 。

article::latest()->dontcache()->firstorfail();

启用逐个查询的缓存行为

另一种方法是,如果默认情况下的缓存机制并不是太好的选择,你可以启用逐个查询的缓存。

首先,从模型中移除变量 $cachefor。

对于每个查询,你可以调用 ->cachefor(…) 方法去指定你想缓存的那个查询。

article::cachefor(now()->addhours(24))->paginate(15四川旅游景点大全);

用 tags 更好地组织缓存

一些缓存存储,像 redis 或者 memcached,提供了对 key 的标记支持。这很有用,飘天生贵主因为我们可以在缓存中标记查询,并在需要时再通过 tag 使所需的缓存失效。

举一个简单的例子,如果我们要在更新一篇文章时使文章列表不进行缓存,你可以像这样写。

$articles = article::cachefor(60)->cachetags(['latest:articles'])->latest()->get();$article = article::find($id);$article->update(['title' => 'my new title']);article::flushquerycache(['latest:articles']);

flushquerycache方法使用 latest:articles标记使缓存无效。如果其他的一些查询中没有被 latest:articles标记,那么将被保留缓存。

了解更多

有关此软件包的更多信息,请在github 上查看该项目。

ps:laravel缓存

1,cache:put(‘key’,’val’,10);设置缓存

键:key , 值:val10:缓存时间十分钟

2,cache:add(‘key’,’val’,10);

设置缓存 key:键,val:值 10:缓存时间十分钟
(有返回值 : 已经有了缓存则返回fal, 没有则返回true并缓存)

3,cache:forever(‘key’,’val’);永久缓存

4,cache:has(‘key’);判断缓存是否存在

5,cache:get(‘key’);获取缓存

6,cache:pull(‘key’);获取缓存一次并删除缓存

7,cache:get(‘key’);删除缓存,true删除成功,fal删除失败

总结

以上所述是www.887551.com给大家介绍的在 laravel 6 中缓存数据库查询结果的方法,希望对大家有所帮助

本文发布于:2023-04-08 04:27:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/949b163595c70c3d02c1b9e3e08d7ae8.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:在 Laravel 6 中缓存数据库查询结果的方法.doc

本文 PDF 下载地址:在 Laravel 6 中缓存数据库查询结果的方法.pdf

标签:缓存   你可以   方法   标记
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图