首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5.1 Redis缓存

Laravel 5.1 Redis缓存
EN

Stack Overflow用户
提问于 2015-10-03 08:43:17
回答 1查看 1.4K关注 0票数 0

我正在尝试在我的Laravel应用程序中实现一个非常基本的缓存机制。

我安装了Redis,通过终端(src/ redis -server)启动它,并在Laravel的配置文件中将缓存从文件更改为redis,但与使用缓存时的常规查询相比,它需要更长的时间(1svs2s)。

我是不是漏掉了什么?我只想缓存一个查询10分钟。

这是我的FeedController.php

代码语言:javascript
复制
namespace App\Http\Controllers\Frontend\Feed;

use Illuminate\Http\Request;
use Auth;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Models\Company;
use Redis;
use Cache;


class FeedController extends Controller
{

    public function index()
    {

        if (Cache::has('companies')) {
            // cache exists.
            $companies = Cache::get("companies");
        } else {
            // cache doesn't exist, create a new one
            $companies = Cache::remember("companies",10, function() {
                return Company::all();
            });

            Cache::put("companies", $companies, 10);
        }


        return view('index')->with('companies', $companies)
    }

我的观点

代码语言:javascript
复制
@foreach($companies as $company)
    {{$company->name}}
@endforeach
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-03 10:05:00

首先,缓存并不总是更快。第二,你在反复检查缓存。

你可以用:

代码语言:javascript
复制
$companies = Cache::remember("companies",10, function() {
            return Company::all();
        });

它检查缓存项是否存在,如果不存在,它将执行闭包并将结果缓存在指定的键中。cache:has / The是不必要的,只会减慢它的速度。

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

https://stackoverflow.com/questions/32920589

复制
相关文章

相似问题

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