Đồng nghiệp PHP:Laravel Cache :: Các phương pháp hay nhất
Câu hỏi này liên quan đến các phương pháp hay nhất để sử dụng Laravel Cache.
Mục tiêu trung tâm là giảm số lượng quyền truy cập vào cơ sở dữ liệu cho tất cả các lý do liên quan đến hiệu suất thông thường. Ứng dụng này là một trang web tin tức chuyên sâu có thể đọc được với hàng tá bộ điều khiển nhiều nhất, chủ yếu là loại tài nguyên.
Có bất kỳ phương pháp hay nhất được ghi lại nào về thiết kế ứng dụng không? Có vẻ như rõ ràng với tôi vì Cache :: là một câu lệnh một dòng, nên dễ dàng thả điều này vào bộ điều khiển - hoặc trả về dữ liệu được lưu trong bộ nhớ cache hoặc gọi mô hình và lưu vào bộ nhớ cache kết quả. Và vô hiệu hóa bộ nhớ cache (có thể với tải lại mong muốn) khi yêu cầu cập nhật mô hình. Nhưng đó là một thực hành tốt?
Dưới đây là một cái nhìn đầu tiên tại làm điều này trong bộ điều khiển
/**
* Retrieve listing of the gallery resource.
*
* @uses GET /gallery to return all image_collections.
*
* @param int $id The gallery id
*
* @return Response - Contains a HTTP code and a list of articles.
*/
public function index()
{
$response_data = array();
$response_code = 200;
// TRY TO RETURN A CACHED RESPONSE
$cache_key = "gallery_index";
$response_data = Cache::get($cache_key, null);
// IF NO CACHED RESPONSE, QUERY THE DATABASE
if (!$response_data) {
try {
$response_data['items'] = $this->gallery->all();
Cache::put($cache_key, $response_data, Config::get('app.gallery_cache_minutes'));
} catch (PDOException $ex) {
$response_code = 500;
$response_data['error'] = ErrorReporter::raiseError($ex->getCode());
}
}
return Response::json($response_data, $response_code);
}
Tôi đã nghe những gợi ý mà bạn có thể sử dụng bộ lọc Laravel Hướng đến bộ nhớ cache các câu trả lời, nhưng tôi có thể không hoàn toàn được đầu của tôi xung quanh Ý tưởng.
Suy nghĩ? Tài liệu tham khảo? Ví dụ?
Nhờ tất cả, Ray
Quản lý bộ nhớ cache khó, tất cả phụ thuộc vào những gì bạn đang lưu vào bộ nhớ cache. Nếu bạn đang trình bày giá trị gần đúng, bạn có thể không quan tâm nếu dữ liệu cơ bản hơi lỗi thời, ngược lại nếu bạn đang lưu vào bộ nhớ cache như ALC, nó có thể luôn đúng (và sau đó được flushed khi lưu trữ dữ liệu bên dưới) . – Matthew
Bạn nên tách logic của bạn trong bộ điều khiển, ví dụ bạn có thể chuyển bộ nhớ cache kiểu gợi ý đến bộ dựng điều khiển của bạn, tôi cũng khuyên bạn nên tạo kho lưu trữ cho bộ nhớ đệm của bạn, vì vậy bạn có thể tận dụng khả năng bộ nhớ đệm của Laravel. – Darick