이 글은 라라벨에서 유용한 캐싱 방법을 공유하는 관련 정보를 주로 소개하고 있으니 필요하신 분들은 참고하시면 됩니다.
라라벨에서 제공하는 캐싱 도구는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!