laravel 中用于缓存的清漆等效包
varnish equivalent package in laravel for caching
我正在改进 Laravel 应用程序的性能。在谷歌搜索一段时间后,我实施了一些最佳实践来提高性能。
但现在我开始意识到我的 laravel 应用程序执行大量 select 查询并且我网站上的数据不会经常更改。因此,我决定实施缓存,并且我知道清漆是实现此目的的最佳选择。
但这是一件非常复杂的事情。因此我想知道是否有没有清漆那么复杂的等效解决方案。
我正在寻找一个 Laravel 包,它会自动缓存 laravel app.
生成的响应
您可以使用Laravel中的中间件实现兑现。这是我正在使用的中间件代码。
public function handle($request, Closure $next, $ttl=1440)
{
if(authenticate_user() != null || $request->isMethod('post') || session()->get('success'))
return $next($request);
$params = $request->query(); unset($params['_method']); ksort($params);
$key = md5(url()->current().'?'.http_build_query($params));
if($request->get('_method')=='purge')
Cache::forget($key);
if(Cache::has($key)){
$cache = Cache::get($key);
$response = response($cache['content']);
$response->header('X-Proxy-Cache', 'HIT');
}
else {
$response = $next($request);
if(!empty($response->content()))
Cache::put($key,['content' => $response->content(), 'headers' => array_map(function($element){ return implode(',', $element); }, $response->headers->all())],$ttl);
$response->header('X-Proxy-Cache', 'MISS');
}
return $response;
}
这里是对上面代码的解释。
Improve server performance by caching server response
我正在改进 Laravel 应用程序的性能。在谷歌搜索一段时间后,我实施了一些最佳实践来提高性能。
但现在我开始意识到我的 laravel 应用程序执行大量 select 查询并且我网站上的数据不会经常更改。因此,我决定实施缓存,并且我知道清漆是实现此目的的最佳选择。 但这是一件非常复杂的事情。因此我想知道是否有没有清漆那么复杂的等效解决方案。 我正在寻找一个 Laravel 包,它会自动缓存 laravel app.
生成的响应您可以使用Laravel中的中间件实现兑现。这是我正在使用的中间件代码。
public function handle($request, Closure $next, $ttl=1440)
{
if(authenticate_user() != null || $request->isMethod('post') || session()->get('success'))
return $next($request);
$params = $request->query(); unset($params['_method']); ksort($params);
$key = md5(url()->current().'?'.http_build_query($params));
if($request->get('_method')=='purge')
Cache::forget($key);
if(Cache::has($key)){
$cache = Cache::get($key);
$response = response($cache['content']);
$response->header('X-Proxy-Cache', 'HIT');
}
else {
$response = $next($request);
if(!empty($response->content()))
Cache::put($key,['content' => $response->content(), 'headers' => array_map(function($element){ return implode(',', $element); }, $response->headers->all())],$ttl);
$response->header('X-Proxy-Cache', 'MISS');
}
return $response;
}
这里是对上面代码的解释。 Improve server performance by caching server response