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

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.

Khóa học này cung cấp cho ta kiến thức nền tảng về công nghệ Blockchain, Bitcoin. Vì sao nó được gọi là công nghệ của tương lai, vì sao giá Bitcoin lại cao đến vậy. Làm sao để mua Bitcoin, ETH.

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.