Cách tăng tốc website WordPress bằng Redis cache

Trong bài viết “Cache là gì? Top 5 plugin cache tốt nhất để tăng tốc website WordPress”, mình đã giới thiệu cho các bạn về các kỹ thuật cache phổ biến nhất hiện nay. Trong đó có một kỹ thuật là object cache. Kỹ thuật này thường được đi kèm với các phần mềm hỗ trợ như Redis, Memcached. Trong bài viết này, hãy cùng đi tìm hiểu Redis cache là gì và cách dùng nó để tăng tốc website của bạn nhé!

Cách tăng tốc website WordPress bằng Redis cache

Redis cache và lợi ích mà nó đem lại là gì?

Redis là từ viết tắt của Remote Dictionary Server (Tạm dịch: máy chủ từ điển từ xa). Đây là một kho lưu trữ mã nguồn mở dùng để lưu các dữ liệu vào bộ nhớ (RAM) dưới dạng key-value. Nó có thể được dùng để làm cơ sở dữ liệu (database), message broker (module trung gian trung chuyển tin nhắn giữa người gửi và người nhân) và tất nhiên là cả cache. Redis lưu trữ dữ liệu trong RAM, do đó tốc độ truy vấn của nó rất nhanh.

Redis cache được dựa trên kỹ thuật object cache. Nó lưu dữ liệu về các đối tượng (object) thường được yêu cầu (request) bởi các máy trạm vào trong RAM. Từ đó, web server (máy chủ của website) có thể dùng luôn những dữ liệu này thay vì phải truy vấn tới database. Việc này giúp giảm tải cho server và khiến website của bạn hoạt động trơn tru hơn (Để biết thêm chi tiết về cách máy chủ xử lý các yêu cầu từ máy trạm, bạn có thể tham khảo bài viết này).

Redis cache thường được sử dụng cho các website với lượng traffic lớn hoặc các dịch vụ web server. Nó được thiết kế cho các máy chủ Linux nên bạn có thể cài đặt nó một cách dễ dàng trên các phiên bản của Linux như CentOS, Ubuntu, Debian, … Trong bài viết này, chúng ta sẽ cài đặt Redis cache trên CentOS và Ubuntu.

Cách cài đặt Redis cache trên website WordPress

Để cài đặt Redis cache trên trang WordPress của bạn, hãy làm theo các bước sau:

  1. Cài đặt Redis trên web server
  2. Cài đặt extension Redis PHP
  3. Cài đặt plugin Redis Caching
  4. Xác minh Redis Caching trong WordPress

Nếu bạn làm đúng theo các bước kể trên thì việc cài đặt sẽ không khó đâu. Cùng bắt đầu nhé!

Bước 1: Cài đặt Redis trên web server

Đầu tiên, hãy đảm bảo rằng web server của bạn đã được cài đặt WordPressđang dùng Ubuntu / CentOS VPS. Ngoài ra, bạn phải kích hoạt repo EPEL (Extra Packages for Enterprise Linux) trên máy chủ nữa nhé!

Sau khi thực hiện tất cả những điều kể trên, hãy cài đặt Redis lên web server bằng các câu lệnh sau:

Đối với Ubuntu VPS:

apt-get install redis-server

Đối với CentOS VPS:

yum install redis

Tiếp theo, hãy khởi động và kích hoạt Redis trên system boot bằng câu lệnh:

systemctl start redis.service
systemctl enable redis.service

Bước 2: Cài đặt extension Redis PHP 

Bên cạnh việc cài đặt Redis, bạn cũng cần cài đặt extension PHP của nó. Extension này sẽ cho phép WordPress truy cập vào kho lưu trữ dữ liệu dạng key-value của Redis. Để cài đặt extension này, hãy chạy các câu lệnh dưới đây:

Đối với Ubuntu VPS:

apt-get install php-redis

Đối với CentOS VPS:

yum install php-pecl-redis

Bước 3: Cài đặt plugin Redis Caching

Tiếp theo, bạn cần cài đặt plugin Redis Caching trên website WordPress của mình. Plugin này có sẵn trên wordpress.org, vậy nên bạn chỉ cần cài đặt và kích hoạt plugin như bình thường thôi nhé!

Sau đó, tới Settings > Redis > Overview, cài đặt các thông số mặc định là 127.0.0.1 cho Redis listening address và 6379 cho listening port. Tiếp theo, click Enable Object Cache để bật tính năng object cache.

Cài đặt plugin Redis Caching trong WordPress

Vậy là bạn đã cài đặt thành công plugin Redis Caching rồi đấy.

Bước 4: Xác minh Redis Caching trong WordPress

Để kiểm tra xem Redis cache có đang hoạt động tốt trên website của bạn hay không, hãy kết nối tới web server thông qua SSH và chạy câu lệnh sau:

redis-cli monitor

Câu lệnh trên sẽ hiển thị tất cả các yêu cầu được xử lý bởi Redis cache trên website của bạn. Từ đó, bạn có thể biết được những gì đang diễn ra trong database của mình. Nếu các yêu cầu đã xuất hiện như dưới đây tức là Redis cache đang hoạt động tốt:

# redis-cli monitor
OK
1510415208.863435 [0 127.0.0.1:50076] "PING"
1510415208.865491 [0 127.0.0.1:50076] "GET" "wp_:default:is_blog_installed"
1510415208.870259 [0 127.0.0.1:50076] "GET" "wp_:options:notoptions"
1510415208.870433 [0 127.0.0.1:50076] "GET" "wp_:options:alloptions"
1510415208.871197 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.875126 [0 127.0.0.1:50076] "GET" "wp_:options:uninstall_plugins"
1510415208.882241 [0 127.0.0.1:50076] "GET" "wp_:wordfence:alloptions"
1510415208.913368 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.913547 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.916283 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.916434 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.947299 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.947480 [0 127.0.0.1:50076] "GET" "wp_:options:can_compress_scripts"
1510415208.947637 [0 127.0.0.1:50076] "GET" "wp_:site-options:1:notoptions"
1510415208.954565 [0 127.0.0.1:50076] "GET" "wp_:posts:last_changed"

Vậy là xong, website của bạn đã được cài đặt Redis cache rồi.

Lời cuối

Từ giờ trở đi, bất cứ khi nào web server nhận được các yêu cầu truy vấn tới database, nó có thể gửi trả về những dữ liệu đã được cache bởi Redis để tiết kiệm thời gian và công sức. Nếu các dữ liệu mà máy trạm yêu cầu chưa được cache bởi Redis, web server sẽ lại tiến hành truy vấn và xử lý dữ liệu từ database như thường. Do đó, Redis cache sẽ giúp giảm tải cho server và khiến trang web của bạn hoạt động mượt mà hơn.

Nếu bạn có bất cứ thắc mắc gì về Redis cache, đừng ngại chia sẻ với chúng mình trong phần bình luận nhé!

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *