WordPress Caching: Hiểu toàn tập và ứng dụng vào website của bạn

Trong bài đăng này, tôi hy vọng sẽ làm sáng tỏ một số trong những quan niệm sai lầm đó và cung cấp một chút rõ ràng về mỏ khai thác đó là bộ nhớ đệm WordPress. Hy vọng rằng, đến cuối bài đăng này, bạn sẽ hiểu rõ hơn về cách các lớp bộ nhớ đệm khác nhau đóng vai trò trong việc tăng tốc WordPress.

Tại sao bộ nhớ đệm lại quan trọng?

Trước khi chúng tôi đi sâu vào các cơ chế lưu trữ khác nhau, điều cần thiết là phải hiểu các lợi ích của việc lưu trữ. Bộ nhớ đệm đóng hai vai trò chính:

  • Nó cải thiện hiệu suất ứng dụng. Đối với các trang web WordPress, điều này có nghĩa là trang web của bạn tải nhanh hơn.
  • Nó làm tăng thông lượng ứng dụng. Có nghĩa là, trang web của bạn có thể xử lý lưu lượng truy cập nhiều hơn.

Hơn nữa, bộ nhớ đệm có thể tăng cả hiệu suất và thông lượng ứng dụng mà không làm tăng chi phí lưu trữ. Điều này là do bạn cần ít tài nguyên hệ thống (CPU & bộ nhớ) để lưu trữ một trang web đã được lưu trữ chính xác. Nó thực sự là một chiến lược cùng có lợi (khi được thực hiện chính xác).

Các trang được lưu trong bộ nhớ cache được phục vụ như thế nào

Tôi nghĩ rằng dễ nhất để hiểu quá trình lưu trữ bằng cách xem cách một trang được phục vụ.

Giả sử bạn sở hữu một blog với bộ nhớ đệm được kích hoạt. Lần đầu tiên ai đó truy cập trang chủ của bạn, họ nhận được trang theo cách thông thường: Yêu cầu được nhận, được xử lý trên máy chủ và trang web kết quả được hiển thị được chuyển thành tệp HTML và được gửi đến trình duyệt web của khách truy cập.

Vì bộ nhớ đệm được bật, máy chủ lưu trữ tệp HTML này – thường trong ‘bộ nhớ truy cập ngẫu nhiên’ (hoặc RAM), cực kỳ nhanh. Lần tới khi bạn hoặc bất kỳ ai khác xem trang chủ, máy chủ không cần thực hiện xử lý và chuyển đổi sang HTML. Thay vào đó, nó chỉ đơn giản là gửi tệp HTML đã được chuẩn bị tới trình duyệt.

Cũng cần lưu ý rằng, bằng cách triển khai bộ nhớ đệm, bạn không chỉ làm cho trang web của mình nhanh hơn, bạn cũng làm cho nó hoạt động tốt hơn – và trang bị nó để chịu gánh nặng của bất kỳ lưu lượng truy cập đột ngột nào hiệu quả hơn.

Các loại bộ đệm

Nói rộng ra, có hai loại cache – máy chủ và trình duyệt. Bộ nhớ đệm trình duyệt được thực hiện ở phía máy khách (người dùng), trong khi bộ đệm của máy chủ được thực hiện (không có gì đáng ngạc nhiên) trên máy chủ. Chúng ta hãy nhìn vào sự khác biệt giữa hai.

Bộ nhớ đệm trong WordPress

Caching Layer

WordPress là một CMS dựa trên cơ sở dữ liệu, có nghĩa là có nhiều phần chuyển động khi xử lý một yêu cầu đến. WordPress ngoài luồng phải truy vấn cơ sở dữ liệu và hiển thị trang trước khi có thể gửi cho người dùng. Điều này xảy ra trên mỗi yêu cầu đến duy nhất, rất kém hiệu quả nếu nội dung trang không thay đổi. Một yêu cầu điển hình sẽ trông giống như thế này:

Request gửi đến server

Theo nguyên tắc chung, các bộ phận chuyển động liên quan đến việc xử lý yêu cầu càng nhiều, người dùng càng phải chờ phản hồi và tài nguyên hệ thống được sử dụng càng nhiều. Để chống lại điều này, bộ nhớ đệm thường được thực hiện theo lớp, với mỗi lớp ngồi trước một bộ phận chuyển động. Ba lớp nổi bật trong WordPress thường được chia thành:

  1. Browser Caching
  2. Page Caching
  3. Object Caching
các loại caching trong wordpress
các loại caching trong wordpress

Hãy để Lặn lặn vào từng lớp. Chúng tôi sẽ làm việc từ bên ngoài, điều này đưa chúng ta đến bộ nhớ đệm trình duyệt.

Bộ nhớ đệm trình duyệt

Mặc dù bộ nhớ đệm của trình duyệt không nhất thiết phải hỗ trợ thời gian phản hồi hoặc thông lượng của ứng dụng (ít nhất là trong các lĩnh vực của WordPress), nhưng đây là lớp quan trọng nhất khi nói đến việc giảm lượng dữ liệu phải được gửi từ máy chủ đến trình duyệt. Điều này có thể làm cho trang web của bạn cảm thấy phản ứng nhanh hơn nhiều vì các tài sản tĩnh như CSS, JS và hình ảnh xuất hiện nhanh hơn nhiều nếu chúng được trình duyệt lưu vào bộ nhớ cache.

Khi hiểu về bộ đệm của trình duyệt, tab mạng trong trình duyệt của bạn, công cụ dành cho nhà phát triển là bạn của bạn. Chúng ta hãy xem xét bộ đệm của trình duyệt trong thực tế, bằng cách tải trang SpinupWP làm ví dụ (vì nó sáng bóng và mới). Tải trang đầu tiên won won có bất kỳ tài sản nào được trình duyệt lưu vào bộ nhớ cache (Tôi đã bật Tắt bộ nhớ cache để giả mạo tải trang ban đầu).

Thứ hai, giá trị được chuyển phải luôn luôn thấp hơn tổng tài nguyên, ngay cả khi đây là lần đầu tiên trang được trình duyệt tải (hoặc ‘Tắt bộ nhớ cache được bật), vì hai lý do:

  1. Tài sản được lưu trong bộ nhớ cache của trình duyệt aren.
  2. Các tài sản như HTML, CSS và JS phải được nén bởi máy chủ trước khi được chuyển sang trình duyệt. Sau đó, họ đã giải nén trình duyệt trước khi hiển thị cho người dùng.

Do đó, nếu bộ nhớ đệm trình duyệt được cấu hình chính xác, các lần tải trang tiếp theo sẽ truyền ít dữ liệu hơn. Bạn có thể thấy điều này cho chính mình khi chúng tôi tải lại trang.

Page Caching

Bộ nhớ đệm trang sẽ mang lại cho bạn nhiều lợi ích nhất khi cải thiện cả thời gian phản hồi và thông lượng của ứng dụng trong WordPress. Bộ đệm trang về cơ bản biến WordPress (CMS dựa trên cơ sở dữ liệu) thành một trang HTML tĩnh bằng cách đưa cả PHP và MySQL ra khỏi phương trình khi xử lý một yêu cầu.

Để chứng minh tầm quan trọng của bộ nhớ đệm trang có thể có, tôi sẽ chuẩn hóa một bản cài đặt WordPress 5.2.2 sạch bằng cách sử dụng ApacheBench. Trong các thử nghiệm này, tôi đã sử dụng SpinupWP để cung cấp 8 GB, 4 vCPUs DigitalOcean Dropplet được điều chỉnh để lưu trữ các trang web WordPress. Các kết quả không được chú ý là dành cho WordPress không có cấu hình bộ đệm (ngoại trừ PHP OPcache, sử dụng các giá trị mặc định PHP 7.3).

Opject Cache

Như đã đề cập trước đây, không phải tất cả các trang đều có thể được lưu vào bộ nhớ cache. Điều này đặc biệt đúng với các trang web thương mại điện tử và thành viên, thường hiển thị nội dung được cá nhân hóa. Nó cũng đúng với khu vực quản trị WordPress. Nếu các trang động như vậy được lưu trong bộ nhớ cache, người dùng sẽ thấy nội dung được cá nhân hóa không liên quan đến chúng.

WordPress có bộ nhớ đệm đối tượng tích hợp, cho phép dữ liệu như các truy vấn cơ sở dữ liệu được lưu trữ trong bộ nhớ. Đây là cách nhiều lệnh gọi đến các hàm như get_posts chỉ dẫn đến một truy vấn cơ sở dữ liệu. Tuy nhiên, bộ đệm của đối tượng không tồn tại theo mặc định (có nghĩa là nó không sống ngoài yêu cầu). May mắn thay, WordPress có thể được tích hợp với một kho lưu trữ dữ liệu liên tục như Redis, rất quan trọng để nhân rộng các trang động. Bộ đệm đối tượng nằm giữa PHP và cơ sở dữ liệu giúp tăng tốc thời gian thực hiện PHP và giảm tải cho cơ sở dữ liệu bằng cách lưu các truy vấn trong bộ nhớ. Bạn có thể thấy tác động của bộ đệm đối tượng bằng cách cài đặt plugin Trình theo dõi truy vấn. Tải trang giỏ hàng WooC Commerce mà không kích hoạt bộ đệm ẩn đối tượng trong 32 truy vấn cơ sở dữ liệu:

Nguồn tham khảo thêm về WordPress Caching

Viết một bình luận

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.