복붙노트

[REDIS] 레디 스에 Laravel 캐싱은 매우 느립니다

REDIS

레디 스에 Laravel 캐싱은 매우 느립니다

미안은 Laravel에 레디 스 내 첫 걸음을하고 알아 냈 뭔가 이상한 I가있다.

내 설정에서 캐시 드라이버로 레디 스를 사용하는 경우는 페이지를로드하는 데 많은 시간에 먼 길을하고있다.

내가 어떻게 알아? 캐시 외관을 사용하지만 레디 스는 외관하지 않을 경우 직접 응답 시간은 일부에 불과하다. 나는 처음에 laravel 설치를 설정하고 간단한 기술 모델에 대한 마이그레이션와 시더를 구축 할 수 있습니다.

우선은 키를 검색 할 때 레디 스-CLI 않았나 나타 내기로 항목이 레디 스에 저장되지 알았는데 *. 내가 설정 / database.php에서 발견 캐시가 REDIS_CACHE_DB와 다른 DB에 저장됩니다 파악 레디 스-CLI 목록에서 '정보의 키 스페이스는 두 DB's는 0과 1이라는.

나는 문제가 MAMP Pro는 내 로컬 호스트 설정에 의해 야기 될 수 있다고 생각. 나는 Laravel 농가 상자로 전환하고 거기에 내 프로젝트를 업로드 그래서. 여기에 동일합니다.

Here's 코드 미안 사용하여 : 루트 / web.php

use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\Cache;
use Illuminate\Http\Request;
use App\Article;

Route::get('/get-articles-mysql', function (Request $request) {
    return response()->json(Article::take(20000)->get());
});


Route::get('/get-articles-cache', function (Request $request) {
    return Cache::remember('posts', 60, function () {
        return Article::take(20000)->get();
    });

});

Route::get('/get-articles-redis', function (Request $request) {
    if($posts = Redis::get('posts.all')) {
        return response()->json(json_decode($posts));
    }

    $posts = Article::take(20000)->get();
    Redis::set('posts.all', Article::take(20000)->get());
    return response()->json($posts);

});

응답 시간을 얻을 우체부를 사용 했는데요. 나는 캐시가 비어있을 때 캐싱 루트가 첫 번째 요청에 천천히해야으로 몇 가지 실행했다. 그러나 나는 평균에 도착하는 것은 이것이다 :

http://laravel-echo.local/get-articles-mysql 583ms
http://laravel-echo.local/get-articles-redis 62ms
http://laravel-echo.local/get-articles-cache 730ms

미안이을받지 못했습니다. 레디 스를 직접 외관 사용하면 초고속입니다. 그러나 왜 그렇게 느린 캐싱? 그래, 난 두 번 내 .env의 파일을 확인. 이 CACHE_DRIVER는 =입니다 미안 실수로 파일 시스템을 사용하지 않도록 레디 스. 그리고 모두의 PHP 장인 설정을 사용 : 명확하고 PHP는 장인 캐시 : 피하기 실수 분명 디버깅 할 때.

레디 스-CLI에서 "게시물 laravel_cache"나는이라는 키를 참조하십시오. 캐시 된 게시물이 있습니다. 그것은 단지를로드하는 연령이 걸립니다. 또한 크롬의 요청을 테스트했다. 응답 시간은 훨씬 긴하지만 여전히 캐싱은 단순한 MySQL의 쿼리보다 더 걸립니다.

어떤 제안 그래서 무슨 일이 여기에 갈 수 있을까?

해결법

    from https://stackoverflow.com/questions/53030544/laravel-caching-with-redis-is-very-slow by cc-by-sa and MIT license