NỘI DUNG
Giới thiệu chung
Bài viết hôm nay mình sẽ nói đến Redis Object Cache, plugin cache khá phổ biến và hiệu năng rất tốt cho website WordPress của bạn mà bạn không nên bỏ qua nó.
Redis và bộ nhớ đệm đối tượng có thể tăng tốc đáng kể thời gian tải trang WordPress của bạn với mỗi lần truy cập tiếp theo. Nó cũng được sử dụng bởi nhiều trang web phổ biến như GitHub, Pinterest, StackOverflow và nhiều trang khác.
Máy chủ từ điển từ xa (Redis) là một kho lưu trữ cấu trúc dữ liệu trong bộ nhớ mở được sử dụng làm cơ sở dữ liệu, bộ đệm và môi giới tin nhắn. Đó là một kho lưu trữ khóa-giá trị thường được gọi là cơ sở dữ liệu NoQuery.
Nó được sử dụng tốt nhất trên các trang web động như các trang web WordPress khi nói đến bộ nhớ đệm đối tượng, lưu trữ lặp lại kết quả truy vấn.
Hôm nay, tôi sẽ chia sẻ chi tiết hơn về bộ nhớ đệm đối tượng, lợi ích của nó và cách cài đặt và sử dụng Redis cho bộ nhớ đệm đối tượng trên các trang web WordPress.
Bộ nhớ đệm là gì?
Nếu một trang web được lưu vào bộ đệm, điều đó có nghĩa là các thành phần của trang đó như hình ảnh, bảng định kiểu và nội dung khác được tải một lần, sau đó được lưu trữ trong cái được gọi là bộ đệm cache.
Nó ghi nhớ những gì đã được tải, tạo một phiên bản tĩnh của nó, sau đó có thể phục vụ phiên bản đó nhanh hơn nhiều vào lần tiếp theo trang đó được tải.
Kết quả là thời gian tải trang nhanh hơn và sử dụng ít tài nguyên máy chủ của bạn hơn.
Kiểm tra bộ nhớ đệm cho WordPress, giải thích bằng tiếng Anh đơn giản để biết thêm chi tiết.
Đối tượng bộ nhớ đệm là gì?
Bộ nhớ đệm đối tượng là một loại bộ nhớ đệm phía máy chủ. Điều này có nghĩa là bộ đệm được quản lý ở cấp máy chủ và không được kiểm soát bởi người dùng cuối hoặc hệ thống họ sử dụng để lưu vào bộ đệm.
Bộ nhớ đệm đối tượng lưu trữ kết quả truy vấn cơ sở dữ liệu đã được tải. Sau đó, nó phục vụ họ nhanh hơn vào lần tiếp theo họ yêu cầu để cơ sở dữ liệu không phải truy vấn lại.
- WordPress cũng có bộ nhớ đệm đối tượng tích hợp với lớp WP_Object_Cache.
Vấn đề là, mặc định bộ nhớ cache đối tượng vốn có của WordPress không tồn tại theo mặc định. Điều này có nghĩa là dữ liệu được lưu trong bộ nhớ cache chỉ được lưu trữ miễn là yêu cầu đến cơ sở dữ liệu kéo dài, cuối cùng không quá một lần tải trang và không hiệu quả.
Nếu bạn đã cài đặt và sử dụng một giải pháp bộ nhớ đệm đối tượng liên tục, chẳng hạn như – ehem – Redis, dữ liệu có thể được lưu vào bộ đệm cho tất cả các lần tải trang tiếp theo, khiến cơ sở dữ liệu của bạn bị gián đoạn nhiều hơn ..
Để biết chi tiết, hãy xem Object Cache là gì và cách sử dụng nó với WordPress .
Ai cần bộ nhớ đệm đối tượng?
Nếu trang web WordPress của bạn là tĩnh và tất cả những gì nó cần tải là biểu định kiểu và một số hình ảnh, chẳng hạn, bạn sẽ không thấy bất kỳ sự khác biệt nào trong việc bạn sử dụng bộ đệm ẩn đối tượng.
Ngược lại, một trang web động tải hàng tấn dữ liệu trên các trang được lưu trữ trong cơ sở dữ liệu của bạn như chi tiết người dùng, phân loại, liên kết và dữ liệu tương tự khác.
Như đã đề cập trước đây, mỗi khi một trang tải nội dung đó, nó sẽ gửi một (hoặc thường là một vài truy vấn cơ sở dữ liệu!). Nếu bạn sử dụng bộ đệm ẩn đối tượng, dữ liệu đó được lưu trữ trong bộ đệm và nó đã sẵn sàng để được hiển thị trên trang trong nháy mắt.
Cơ sở dữ liệu của bạn có thể được truy vấn ít thường xuyên hơn và việc truy xuất nội dung từ bộ đệm nhanh hơn rất nhiều so với việc gửi truy vấn đến cơ sở dữ liệu.
Kết quả này là thời gian tải trang nhanh hơn rất nhiều. Tài nguyên của máy chủ của bạn cũng được sử dụng hiệu quả hơn. Đây là một yếu tố đặc biệt quan trọng nếu bạn đang tìm cách mở rộng quy mô trang web WordPress của mình.
Vì vậy, nếu trang web của bạn nhận được nhiều lưu lượng truy cập hoặc bạn đang mong đợi nó sẽ sớm hoạt động và nó động, bạn nên xem xét sử dụng bộ đệm ẩn đối tượng.
Memcached và Redis: Sự khác biệt là gì?
Memcached là một tùy chọn lưu trữ bộ nhớ cache đối tượng liên tục khác mà bạn có thể sử dụng thay vì Redis. Đây là một tùy chọn phổ biến và hoạt động tốt, tuy nhiên, nó có một bộ tính năng nhỏ hơn khi so sánh với Redis.
Đây là lý do tại sao Redis là một lựa chọn phổ biến hơn nhiều. Nhưng, điều đó không nhất thiết có nghĩa là bạn nên xóa hoàn toàn Memcached, đặc biệt là khi nó được sử dụng bởi các trang web hàng đầu như Facebook, Twitter, YouTube, v.v.
Cân nhắc các lựa chọn của bạn bằng cách xem xét các tính năng bạn cần để giúp bạn quyết định lựa chọn nào phù hợp với trang web WordPress của bạn vì mỗi trường hợp là khác nhau.
Để biết chi tiết, hãy xem Memcached: Nó là gì và làm thế nào để sử dụng nó trên trang web WordPress của bạn?
Sử dụng bộ nhớ đệm Redis trên WordPress
Để sử dụng Redis cho bộ nhớ đệm đối tượng trên các trang web WordPress, nó bắt đầu bằng việc cài đặt và định cấu hình Redis, sau đó cài đặt tiện ích mở rộng PHP , sau đó là plugin Redis Object Cache .
Nhiều giải pháp lưu trữ WordPress được quản lý đã cung cấp bộ nhớ đệm đối tượng Redis để bạn có thể kiểm tra với máy chủ của mình để xem đó có phải là một tùy chọn không. Họ có thể có một cài đặt nhanh chóng hoặc một cú nhấp chuột có sẵn.
Nếu bạn thấy bạn cần phải tự cài đặt nó, bạn có thể làm như vậy bằng tay.
Dù bằng cách nào, bạn nên cài đặt Redis trên máy chủ Linux. Mặc dù không có hỗ trợ chính thức cho Windows, nhưng có một cổng Redis Win-64 được phát triển bởi Microsoft.
Nếu bạn quyết định muốn cài đặt thủ công Redis cho bộ nhớ đệm đối tượng trên máy chủ Linux của mình, có một vài điều kiện tiên quyết khác:
- Quyền truy cập root vào máy chủ Linux của bạn
- Khả năng cài đặt Redis thông qua truy cập SSH
- Đã cài đặt WordPress
- Phiên bản PHP 7.0 trở lên
- Máy chủ đã cài đặt cả Wget và Sudo
- Trình chỉnh sửa văn bản được cài đặt trên máy chủ của bạn, chẳng hạn như Nano
- Phpize được cài đặt để chuẩn bị phần mở rộng PHP để biên dịch
Hãy chắc chắn cũng sao lưu toàn bộ trang web của bạn trong trường hợp có sự cố và bạn cần khôi phục nó. Bạn cũng nên thử nghiệm Redis trước khi triển khai nó trên máy chủ sản xuất.
1. Cài đặt Redis cho bộ nhớ đệm đối tượng
Mặc dù bạn có thể sử dụng trình quản lý gói của bản phân phối Linux cụ thể của mình như apt hoặc yum , nhưng nó có thể không phải lúc nào cũng được cập nhật với phiên bản mới nhất vì vậy bạn nên sử dụng wget với một liên kết đến kho lưu trữ chính.
$ wget http://download.redis.io/redis-stable.tar.gz $ tar xvzf redis-stable.tar.gz $ cd redis-stable $ make
2. Cấu hình Redis làm Cache
Bây giờ, cần phải chỉnh sửa tệp cấu hình mà Redis đã được cài đặt, cấu hình nó để sử dụng nó đặc biệt cho bộ nhớ đệm đối tượng.
Để đến tập tin cấu hình, sử dụng dòng dưới đây:
Lưu ý: Lệnh vi dùng để sửa tệp, bạn có thể dùng vim hoặc nano .
# vi /etc/redis/redis.conf #maxmemory maxmemory 128mb maxmemory-policy allkeys-lfu
Hãy nhớ rằng bạn có thể thay đổi trên 128 128 phù hợp với nhu cầu của bạn.
Ví dụ: 50 MB phù hợp với nhiều cài đặt WordPress, nhưng nếu bạn chạy một trang web có lưu lượng truy cập cao, 128 MB hoặc 256 MB có thể phù hợp hơn. Sử dụng những gì hoạt động tốt nhất cho trang web của bạn.
3. Chỉnh sửa tệp wp-config.php
Theo mặc định, Redis hiện được thiết lập để có bất kỳ dữ liệu được lưu trữ nào có thể truy cập được đối với tất cả các ứng dụng trên máy chủ. Vì đây là một rủi ro bảo mật, điều quan trọng là phải chỉnh sửa tệp lõi WordPress wp-config.php để bao gồm một muối khóa bộ đệm.
Ngay cả khi bạn chỉ có kế hoạch có WordPress trên máy chủ của mình, điều quan trọng là không bỏ qua bước này trong trường hợp bạn quyết định cài đặt Multisite hoặc bao gồm các ứng dụng khác trên máy chủ của bạn trong tương lai.
Mở tệp wp-config.php và phía trên dòng “happy blogging” của blog, thêm phần sau đây, sau đó lưu tệp vào máy chủ của bạn:
define( 'WP_CACHE_KEY_SALT', 'example.com:' );
Đừng quên thay thế example example.com bằng bất cứ thứ gì bạn muốn. Nó không phải là miền của trang web của bạn, nhưng hãy chắc chắn rằng nó là duy nhất.
Bạn có thể tạo ngẫu nhiên một giá trị khóa bằng cách sử dụng một công cụ miễn phí như Random Key Gen hoặc KeyGen.io . Hãy chắc chắn để bảo vệ nó giống như mật khẩu của bạn.
4. Cài đặt tiện ích mở rộng PHP
Điều cũng cần thiết là để WordPress liên hệ với kho lưu trữ khóa-giá trị Redis để bạn có thể kích hoạt bộ đệm ẩn đối tượng. Để làm điều này, bạn cần cài đặt một phần mở rộng PHP như PHP Redis .
Quay trở lại dòng lệnh và nhập như sau:
$ wget https://github.com/nicolasff/phpredis/archive/master.zip $ unzip master.zip $ cd phpredis-master $ phpize $ ./configure $ make $ make install $ echo "extension=redis.so" > /etc/php/7.x/apache2/conf.d/redis.ini
Hãy chắc chắn thay thế phiên bản xx trong Phần 7.x để phản ánh phiên bản PHP 7 bạn đã cài đặt.
Hãy nhớ rằng nếu bạn không sử dụng Apache, đường dẫn tệp sẽ cần được cập nhật để phản ánh thứ bậc tệp bạn có trên máy chủ của mình.
5. Khởi động lại Redis và PHP
Điều quan trọng là bạn khởi động lại PHP và Redis để áp dụng các thay đổi bạn đã thực hiện ở trên.
Bạn có thể khởi động lại Redis bằng cách nhập lệnh bên dưới:
$ service redis-server restart
6. Xác minh Redis đang hoạt động
Bây giờ Redis đã được cài đặt, đã đến lúc kiểm tra xem nó có hoạt động tốt không bằng cách chạy lệnh sau:
$ redis-cli ping
Nếu phản hồi là “PONG” thì redis đã hoạt động
WP Rocket và Redis
Mặc dù WP Rocket không tích hợp bộ nhớ đệm đối tượng Redis vì trọng tâm của nó là bộ nhớ đệm trang, nó vẫn tương thích. Bạn chắc chắn có thể sử dụng WP Rocket cùng lúc với khi bạn sử dụng Redis
KẾT THÚC
Bộ nhớ đệm đối tượng có thể tăng tốc độ tải trang của trang WordPress của bạn một cách mạnh mẽ và bạn có thể thực hiện điều đó với Redis. Nó cần một số cấu hình, nhưng nếu bạn làm theo các bước trên, bạn sẽ được thiết lập và sẵn sàng để đi.