0
我試圖在我的Laravel應用中實現一個非常基本的緩存機制。Laravel 5.1 Redis緩存
我安裝了Redis,通過終端(src/redis-server)啓動它,並在Laravel的配置文件中將緩存從文件更改爲redis,但是當我使用緩存時,它比常規查詢需要更長時間(1s vs 2s)。
我在這裏錯過了什麼嗎?我只想緩存10分鐘的查詢。
這裏是我的FeedController.php
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)
}
我的觀點
@foreach($companies as $company)
{{$company->name}}
@endforeach
我是redis noob,謹慎解釋爲什麼緩存不總是更快? –
想象下面的情況: $ data = Cache :: remember('data',10,function(){ return [1,2,3,4]; }); 這是一個極端的例子,但在PHP中生成數組的速度要快於從緩存中獲取數組。你應該總是考慮何時使用它。 當MySQL配置正確時,從MySQL獲取項目更容易,速度更快,可靠性更高。特別是在簡單的查詢。 當性能成爲問題時,您應該使用緩存,在此之前,請不要打擾。 –