>  기사  >  백엔드 개발  >  Laravel의 캐싱 방법에 대하여

Laravel의 캐싱 방법에 대하여

不言
不言원래의
2018-06-13 16:56:341707검색

이 글은 라라벨에서 유용한 캐싱 방법을 공유하는 관련 정보를 주로 소개하고 있으니 필요하신 분들은 참고하시면 됩니다.

라라벨에서 제공하는 캐싱 도구는 get, put 등 기본적인 사용법을 아주 쉽게 소개하고 있습니다. , Forget, Forever 등 처음에는 다음과 같이 사용했습니다.

if (!$article = Cache::get('article_1')) {
    $article = Article::find(1);
    Cache::forever('article_1',$article);
}

가장 기본적인 사용법으로 캐시가 있는지 자동으로 확인하고, 존재하지 않으면 데이터베이스에서 가져와서 캐시.

나중에 저는 이 모델에 Remember 및 RememberForever 메소드도 함께 제공된다는 사실을 발견했습니다. 예를 들어 다음과 같습니다.

$article = Article::rememberForever('article_1')->where('id','=',1);

예를 들어 with(를 사용하는 경우에는 데이터를 완전히 캐시할 수 없습니다. ) 관련 데이터를 미리 로드하려면 연결을 캐시할 수 없습니다.

그런 다음 Cache가 Response와 같은 매크로 메소드를 사용자 정의할 수도 있다는 것을 발견하여 다음을 시도했습니다.

//注册缓存存取宏
Cache::macro('want',function($key,$minutes=0,$callback){
    if (!$data = Cache::get($key)) {
        $data = call_user_func($callback);
        if ($minutes == 0) {
            Cache::forever($key,$data);
        } else {
            Cache::put($key,$data,$minutes);
        }
    }
    return $data;
});

이 메소드는 bootstrap/start.php에 배치하거나 필터의 App::before()에 배치할 수 있습니다. . 프로젝트에 맞게 사용하세요. 사용 방법을 살펴보겠습니다.

$id = Input::get('id');
$article = Cache::want('article_'.$id,0,function() use ($id){
    return Article::with('tags')->findOrFail($id,['id','cid','title','content_html as content','created_at','updated_at']);
});

저는 개인적으로 이런 방식을 좋아합니다. 여러분 모두가 이 기사의 내용을 좋아하길 바랍니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

동시에 대기열을 사용하는 여러 프로세스의 Laravel Redis 문제 분석

Laravel의 데이터 마이그레이션 및 데이터 채우기 분석

위 내용은 Laravel의 캐싱 방법에 대하여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.