Cấu hình Redis Caching để tăng tốc site WordPress của bạn

7441

Redis là cái gì?

Hỏi hơi dư thừa vì có đầy trên mạng, nhưng tóm gọn lại cho bạn khỏi phải đi đâu lòng vòng nhé. Redis là hệ thống lưu trữ key-value với rất nhiều tính năng và được sử dụng rộng rãi. Redis nổi bật bởi việc hỗ trợ nhiều cấu trúc dữ liệu cơ bản (hash, list, set, sorted set, string. Bên cạnh lưu trữ key-value trên RAM với hiệu năng cao, redis còn hỗ trợ lưu trữ dữ liệu trên đĩa cứng (persistent redis) cho phép phục hồi dữ liệu khi gặp sự cố.

Túm tụm lại là mình có thể lưu trữ dữ liệu với Mysql và dùng Redis để caching trên Ram nên nó sẽ ít truy vấn đến DB, chạy trên ram nữa nên truy suất dữ liệu cũng nhanh hơn bình thường.

Trong tuts này mình sẽ hướng dẫn cấu hình cache với Redis để giảm các truy vấn dư thừa và tốn thời gian để render 1 page của WordPress. Hướng dẫn này cấu hình trên Ubuntu 14.04. Mình có thử benchmark trên site WP mặc định khi không có Redis và sau khi cấu hình Redis:

Default WordPress home page không Redis:

804ms page load time

Default WordPress home page có Redis:

449ms page load time

Redis vs. Memcached

Memcached cũng là 1 lựa chọn cache phổ biến. Nhưng tại thời điểm hiện tại, Redis có thể làm mọi thứ mà Memcached có thể, với nhiều tính cực ngon hơn. Các bạn có thể tham khảo thêm Stack Overflow page để  tổng hợp thông tin về Redis, rồi từ đó rút ra kết luận riêng cho mình.

Caching làm việc như thế nào?

Khi WP page load lần đầu, nó sẽ truy vấn trực tiếp Database trên server, sau đó ông Redis sẽ cache lại cái truy vấn này trên Ram. Về sau khi những user khác load trang thì kết quả sẽ được trả bởi anh Redis chứ không truy vấn anh DB nữa. Việc hạn chế truy vấn sẽ giúp cho DB ít hoạt động hơn, đỡ ngốn resource của server hơn.

Bước 1: Cài Redis

Để sử dụng Redis với WordPress, cần phải cài đặt hai gói: redis-serverphp5-redis. Gói redis-server cung cấp bởi chính Redis, trong khi gói php5-redis là 1 extension dành cho các ứng dụng PHP như WordPress để connect với Redis.

Cài đặt :

sudo apt-get cài đặt redis-server php5-redis

Bước 2: Cấu hình cahce Redis

Sửa file /etc/redis/redis.conf và thêm một số hàng ở dưới cùng:

sudo nano /etc/redis/redis.conf

Thêm 2 dòng này ở cuối file:

maxmemory 256mb
maxmemory-policy allkeys-lru

Bước 3: Redis Cache Backend Script

Cái script PHP cho WordPress được code bởi Eric Mann. Nó là Redis object cache backend cho WordPress. Bạn tải về rồi cho nó vào /wp-content.

Bước 4: Bật cache settings trong wp-config.php

Sửa file config nhé:

nano /var/www/html/wp-config.php

Thêm dòng này vào cuối dòng * Authentication Unique Keys and Salts.

define('WP_CACHE_KEY_SALT', 'example.com');

Nhớ enable cache cho WP

define('WP_CACHE', true);

Tổng quan là vầy

 * Authentication Unique Keys and Salts.

. . .

define('NONCE_SALT',       'put your unique phrase here');

define('WP_CACHE_KEY_SALT', 'example.com');
define('WP_CACHE', true);

Bước 5: Restart lại Redis và Apache (hay Nginx…)

Restart Redis:

sudo service redis-server restart

Restart Apache:

sudo service apache2 restart

Restart php5-fpm nếu bạn có sử dụng nó

sudo service php5-fpm restart

Đến đây là xong rồi, lúc này WP của bạn đang dùng Redis để caching.

Monitor Redis với redis-cli

Để monitor Redis thì dùng lệnh này:

redis-cli monitor

Lệnh này sẽ xuất ra màn hình các truy vấn được Redis caching realtime. Nếu màn hình trắng trơn thì vào lại trang chủ để nó query rồi nó cache cho xem nghen. Hết rồi, cám ơn đã đọc!

Tham khảo thêm tuyển dụng lập trình WordPress lương cao tại Topdev

  11 cách tăng tốc nhanh cho WordPress bằng file wp-conig.php