Redis là cái gì?
Tóm gọn lại, Redis là một hệ thống lưu trữ key-value được sử dụng phổ biến với nhiều tính năng và hỗ trợ nhiều cấu trúc dữ liệu cơ bản. Redis không chỉ lưu trữ key-value trên RAM với hiệu suất cao mà còn hỗ trợ lưu trữ trên đĩa cứng (persistent redis) để phục hồi dữ liệu sau sự cố.
Một ứng dụng phổ biến là kết hợp Redis với MySQL, nơi MySQL lưu trữ dữ liệu chính và Redis sử dụng để caching trên RAM. Điều này giúp giảm thiểu truy vấn đến cơ sở dữ liệu và tăng tốc độ truy suất dữ liệu. Trong bài hướng dẫn trên Ubuntu 14.04, tác giả mô tả cách cấu hình cache với Redis để cải thiện hiệu suất và giảm thời gian render cho các trang WordPress.
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 trang WordPress được tải lần đầu, quá trình này bao gồm việc truy vấn trực tiếp vào cơ sở dữ liệu trên máy chủ. Tuy nhiên, sau đó, Redis sẽ lưu trữ lại kết quả của truy vấn này trong bộ nhớ RAM. Khi các người dùng khác tải trang, Redis sẽ cung cấp kết quả mà không cần thực hiện thêm truy vấn vào cơ sở dữ liệu. Việc giảm số lượng truy vấn giúp giảm hoạt động của cơ sở dữ liệu, giảm tải nguồn lực của máy chủ.
Bước 1: Cài Redis
Để sử dụng Redis với WordPress, cần phải cài đặt hai gói: redis-server
và php5-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 dưới đây sẽ hiển thị trực tiếp trên màn hình các truy vấn đang được Redis lưu trữ theo thời gian thực. Nếu màn hình trở nên trống trơn, vui lòng truy cập lại trang chủ để kích thích truy vấn và sau đó Redis sẽ lưu trữ chúng để bạn có thể theo dõi. Đến đây là hết, cảm ơn bạn đã theo dõi!