Cache là gì?

Bạn có bao giờ để ý vào mùa đứt cáp một số video trên youtube load rất nhanh, một số lại load như rùa bò không? Nguyên nhân có thể vì video nhanh được cache tại server youtube Việt Nam, trong khi video chậm vẫn nằm ở server thế giới.

Cache server là gì?

Cache là nơi lưu giữ các tài nguyên tạm thời và phổ biến của hệ thống. Các tài nguyên này có thể là trang web, file, video… Có rất nhiều loại cache, như disk cache, ram cache... Trong phạm vi môn học này, ta xem đây là một cache server.

Khi một lệnh HTTP được gởi đến cache server. Nếu tài nguyên này nằm trong cache nó sẽ lấy ra sử dụng thay vì phải tải trực tiếp từ server gốc.

Cache Server

Cache Server

Tại sao cần sử dụng Cache?

  1. Cache giúp tăng tốc độ tải trang. Cache server giúp tăng tốc độ tải trang khi tài nguyên được lấy ra trực tiếp, không phải qua các bước xử lý, truy xuất database như trên server gốc.
  2. Giúp giảm tải cho server gốc, các server database. Vì request không thực sự đến server gốc cho nên cache giúp giảm tải rất nhiều gánh nặng cho server gốc.

Điều gì xảy ra với các video Youtube?

Trở lại ví dụ ban đầu, tại sao một số video lại load nhanh hơn một số video khác. Nguyên nhân vì Youtube có cache server đặt tại Việt Nam. Nếu một video được nhiều người Việt xem Youtube sẽ tự động chuyển video đó về cache server Việt Nam. Vào mùa đứt cáp những video này vẫn được tải rất nhanh.

Điều gì xảy ra với một cache request?

Quá trình xử lý cache thường trải qua 4 bước sau đây.

  1. Nhận request từ client.
  2. Tra cứu cache server, tài nguyên đã được tải sẵn hay chưa, nếu chưa thì tải từ server mẹ. Nếu có sẵn thì qua bước 3.
  3. Xác thực xem tài nguyên có còn mới hay không. Nếu không mới có thể tải lại từ server mẹ.
  4. Gởi trả thông tin về cho client.

Ta có thể thấy ở bước 3, cache server có thể sẽ liên lạc với server mẹ để xác thực tài nguyên có còn mới hay không, nếu tài nguyên đã cũ, quá hạn thì sẽ lấy lại thông tin từ server mẹ.

Server mẹ có thể kiểm soát một tài nguyên được cache trong vòng bao lâu.

Nếu tài nguyên không thường xuyên thay đổi, cache đó có thể lưu trong vòng vài giờ hoặc một ngày.

Nếu tài nguyên thường xuyên thay đổi, cache đó có thể lưu chỉ trong vòng 5 - 10 phút.

Lưu ý:

Khi lập trình, bạn có thể đặt setting cho cache server của bạn thông qua các phương thức Expires hoặc max-age control.

Các môn học khác

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.

SQL là ngôn ngữ truy vấn mang tính cấu trúc, nó cho phép bạn truy cập và sử dụng database.

Khoa học về dinh dưỡng, giáo trình giảm cân cho mọi người.