Bộ nhớ đệm (Web Cache) trên Host Server là gì?

Bộ nhớ đệm (Web Cache) trên Host Server là gì?

Trang web tải nhanh là một lợi thế trong thời đại công nghệ số, một trong các tip để tăng tốc website mà hầu như bất cứ website nào cũng đang áp dụng là caching giúp tăng tốc độ truy suất dữ liệu và giảm tải cho server đơn giản nhất Chi tiết về các loại cache (Object caching, CDN caching – Edge Caching, Opcode caching…) bạn có thể tìm hiểu qua bài viết dưới đây

I. Bộ nhớ đệm (Cache) là gì?

Cache là dữ liệu trên website được lưu vào bộ nhớ để phục vụ cho các yêu cầu từ phía khách hàng request dữ liệu lên server, hiểu đơn giản là các data trên website bao gồm html css và javascript sẻ được tạo sẵn và lưu trữ vào 1 vùng bộ nhớ trên server, khi khách hàng sử dụng trình duyệt web và truy cập vào website thì máy chủ sẻ tự động phân phối các cache đã được lưu trữ để sẵn trên server, như vậy tốc độ truy xuất sẻ rất nhanh so với khi không dùng cache.
Bạn có thể hiểu cache theo cách nông dân như sau: Ví dụ website như là 1 tiệm mì, nếu khách truy cập đi ngang qua tiệm bánh mì của bạn mua bánh thì bạn lấy bánh mì đưa ngay cho khách (vì bánh mì được làm sẵn [tưởng tượng cache là bánh mì đã được làm sẵn rồi]) thay vì phải chạy vào nhà bếp lấy nguyên liệu và làm bánh và nướng bánh, sau đó mới mang ra cho khách.
Nếu không có cache, khi có 1 yêu cầu tới server, server sẻ truy xuất dữ liệu bên trong database và tìm kiếm các dữ liệu phù hợp, sau đó mới trả về cho các kết quả như phí client yêu cầu (Bạn sẻ thấy đơn giản vậy nhưng tốn rất nhiều bộ nhớ và thời gian để xử lý)
Cache Server

Cache Server

1. Máy chủ xử lý khi không sử dụng cache

  1. Người dùng nhấp vào liên kết đến trang web của bạn (từ kết quả tìm kiếm, trang web khác, bài đăng trên phương tiện truyền thông xã hội, email, v.v.)
  2. Trình duyệt của người dùng gửi một yêu cầu đến máy chủ của bạn (được gọi là yêu cầu HTTP)
  3. Máy chủ của bạn biên dịch và cung cấp tất cả các tệp cần thiết để hiển thị trang web trong trình duyệt của người dùng (mọi hình ảnh, tệp, tập lệnh, biểu định kiểu, v.v. sẽ được biên dịch thêm thời gian cho yêu cầu này).
  4. Người dùng cuối cùng được phục vụ một trang web đầy đủ và được tải đầy đủ thông qua trình duyệt
Web Caching Diagram

Qúa trình xử lý khi không sử dụng cache

2. Máy chủ xử lý có sử dụng cache

  1. Một người dùng trực tuyến nhấp vào liên kết đến trang web của bạn (từ kết quả tìm kiếm, trang web khác, bài đăng trên phương tiện truyền thông xã hội, email, v.v.)
  2. Trình duyệt người dùng có thể gửi yêu cầu HTTP / HTTPS đến máy chủ
  3. Máy chủ phát hiện nội dung của bạn không thay đổi kể từ lần cuối ai đó truy cập trang web của bạn
  4. Máy chủ lấy một bản sao tĩnh của trang web được lưu trữ trong bộ nhớ cache và cung cấp nhanh chóng cho trình duyệt web của người dùng

II. Một số loại web cache

  • Browser Cache
  • Server Cache
    • Object caching
      • Redis
      • Memcached
      • Varnish
    • Opcode caching
    • CDN caching – Edge Caching

1. Browser Cache

Bộ đệm của trình duyệt là loại bộ đệm phía máy khách, nó cũng là một loại bộ đệm trang web, là một hệ thống bộ nhớ cache được tích hợp trong trình duyệt. Các tệp và nội dung được lưu trữ trên máy tính của bạn và được nhóm với các tệp khác được liên kết với trình duyệt bạn sử dụng. Bộ đệm của trình duyệt tạm thời lưu các loại nội dung:
  • Trang HTML
  • CSS
  • Tập lệnh JavaScript
  • Hình ảnh
  • Các loại nội dung đa phương tiện khác

2. Object caching

Object caching lưu trữ các truy vấn cơ sở dữ liệu trong bộ đệm phía máy chủ để truy xuất nhanh các lần tải trang tiếp theo. Một số Object caching nổi tiếng là Redis, Memcached và Varnish
Redis Object Caching

Redis Object Caching

3. Opcode caching

Mỗi khi bạn thực thi một tập lệnh PHP, tập lệnh này cần được biên dịch thành bytecode. OPcache tận dụng bộ đệm cho bytecode này, vì vậy lần sau nếu vẫn là tập lệnh đó, nó không phải biên dịch lại lần nữa. Điều này có thể tiết kiệm một số thời gian thực hiện quý giá và do đó làm cho ứng dụng của bạn nhanh hơn (và có thể tiết kiệm một số chi phí máy chủ).

4. Bộ nhớ đệm CDN – Edge caching

Mạng phân phối nội dung (CDN) là một cụm máy chủ có vị trí địa lý trên toàn thế giới. Họ lưu trữ nội dung mà bộ đệm đã tải bằng cách sử dụng máy chủ mà gần với người dùng cuối nhất để cho thời gian tải web nhanh hơn.
Edge Caching

Edge Caching

III. Các loại caching khác

Ngoài các loại cachinh trên thì nếu bạn sử dụng CMS phổ biến nhất thế giới là WordPress sẻ có WP_Object_Cache WordPress đã sử dụng bộ đệm đối tượng tích hợp (được gọi là WP_Object_Cache) kể từ khi giới thiệu phiên bản 2.0 vào năm 2005 WP_Object_Cache tự động lưu trữ dữ liệu từ cơ sở dữ liệu trong bộ nhớ PHP để ngăn các truy vấn lặp lại làm quá tải cơ sở dữ liệu của bạn. Vào cuối mỗi yêu cầu, các đối tượng sẽ bị loại bỏ và phải được xây dựng lại từ đầu vào lần tiếp theo khi người dùng yêu cầu trang. Mặc dù điều này rất hữu ích vì đảm bảo cơ sở dữ liệu WordPress không bị truy vấn nhiều lần trong một lần tải trang, bộ nhớ đệm đối tượng sẽ hiệu quả và mạnh mẽ hơn nếu nó có thể được sử dụng để lưu trữ các yêu cầu truy vấn tương tự liên tục thông qua nhiều lần tải trang.