首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel,使用内存中的DB缓存结果

Laravel,使用内存中的DB缓存结果
EN

Stack Overflow用户
提问于 2016-01-18 05:30:29
回答 2查看 1.9K关注 0票数 15

在新闻网站上,我有一个文章模型,我想缓存最新的文章,因为我希望他们有最高的点击率。如何编写以这种方式运行的方法:

代码语言:javascript
运行
复制
public function findById($id)
{
    if(Article::inMemory($id))
        return Article::findFromMemory($id);

    return Article::find($id);
}

如果有更好的方法,也请提出来。

EN

回答 2

Stack Overflow用户

发布于 2016-01-19 04:57:56

代码语言:javascript
运行
复制
use Cache;
public function findById($id) 
{
    if ($articleInCache = Cache::get('article-' . $id)) {
        return $articleInCache;
    }
    return Article::find($id);
}

有多个内存驱动程序可供使用,您可以确定如何在内存中存储值。在上面,它假设你用“文章-”存储了这个值。文章(如“$id -5”作为关键字)。由你决定。

查看文档:https://laravel.com/docs/master/cache

查看Laracast:https://laracasts.com/series/real-time-laravel-with-socket-io/episodes/2

票数 4
EN

Stack Overflow用户

发布于 2016-01-27 00:01:34

Laravel有一个专门针对此场景的功能,称为Retrieve或Update:

代码语言:javascript
运行
复制
use Cache;
public function findById($id)
{
    return Cache::rememberForever("article-$id", function () use ($id) {
        return Article::find($id);
    });
}

这将缓存并返回闭包的返回值,否则在需要时执行闭包以填充缓存。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34843958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档