Redis Object Cache cơ bản
Redis là key-value store phổ biến nhất cho WordPress. Plugin Redis Object Cache (của Till Krüss) hoặc Object Cache Pro đều triển khai chuẩn API wp_cache_set, wp_cache_get. Mặc định Redis single-node đã giúp giảm query database 60–90% cho site vừa.
Khi nào cần Redis Cluster?
- Site lớn: hàng trăm ngàn object cache lưu trong Redis vượt quá RAM 1 node.
- Tải phân tán: cần scale nhiều Redis node để chịu tải song song.
- Độ sẵn sàng cao: Redis cluster có replication và failover.
Ví dụ: site thương mại điện tử với 1M sản phẩm, postmeta nặng, query WP_Query phức tạp. Redis cluster phân mảnh key theo hash slot, giúp cache không bị bottleneck 1 server.
// wp-config.php
define( 'WP_REDIS_CLUSTER', true );
define( 'WP_REDIS_SERVERS', [
'tcp://10.0.0.1:6379',
'tcp://10.0.0.2:6379',
'tcp://10.0.0.3:6379',
]);
Relay: Engine PHP đặc biệt cho Redis
Relay là một PHP extension do Object Cache Pro phát triển. Nó thay thế client Redis thông thường (phpredis) bằng engine C tối ưu, hỗ trợ pipeline, compression và giảm overhead mạng. Kết quả: throughput cao hơn 2–3 lần, latency thấp hơn nhiều.
Trường hợp nên dùng Relay:
- Bạn dùng Object Cache Pro (plugin premium) – Relay là lợi thế riêng.
- Server của bạn có CPU/RAM mạnh, cần tối ưu từng microsecond.
- Site enterprise: SaaS, ecom lớn, traffic 1k–10k RPS.
// wp-config.php
define( 'WP_REDIS_CLIENT', 'relay' );
APCu Hybrid: Tầng cache trong RAM PHP
APCu là opcode cache ngay trong process PHP-FPM. Truy cập APCu nhanh hơn Redis vì không qua network. Nhược điểm: cache không chia sẻ giữa nhiều process/server. Giải pháp hybrid: APCu + Redis.
- APCu: dùng như L1 cache (cực nhanh, ephemeral).
- Redis: dùng như L2 cache (chia sẻ giữa process, node).
Ví dụ khi chạy W3 Total Cache hoặc custom drop-in:
// wp-config.php
define( 'WP_CACHE_KEY_SALT', 'mysite:' );
define( 'WP_REDIS_USE_APCU', true ); // bật L1 cache
Khi đó, request lặp lại trong cùng PHP worker sẽ hit APCu tức thì, nếu miss mới hỏi Redis.
Tích hợp với các plugin phổ biến
- Redis Object Cache (free): hỗ trợ Redis single node, Redis cluster (manual config). Kết hợp APCu bằng define ở
wp-config.php. - Object Cache Pro (premium): thêm tính năng compression, metrics, và đặc biệt hỗ trợ Relay client + APCu hybrid. Tích hợp tốt với WooCommerce/Multisite.
- W3 Total Cache: cho phép chọn Redis, Memcached, APCu trong dashboard. Bạn có thể chọn “Database Cache” = Redis, “Object Cache” = APCu để hybrid. Tuy nhiên, quản lý không chi tiết bằng Redis Object Cache.
Khi nào dùng giải pháp nào?
- Redis single node: site vừa, vài trăm ngàn pageview/ngày. Plugin Redis Object Cache free là đủ.
- Redis cluster: site lớn, hàng triệu object, nhiều node PHP. Cần phân tán cache để tránh quá tải.
- Relay: site enterprise, yêu cầu tối đa tốc độ, có Object Cache Pro. Rất phù hợp WooCommerce/Multisite.
- APCu hybrid: site có nhiều request lặp trong cùng worker, muốn giảm latency. Nên dùng kèm Redis làm tầng chia sẻ.
Kết luận
Modern Object Cache giúp WordPress scale lên hàng triệu user. Redis cluster giải quyết scale ngang, Relay giảm latency ở client PHP, còn APCu hybrid tối ưu hit rate trong process. Nếu bạn đang dùng plugin Redis Object Cache hoặc Object Cache Pro, hãy xem xét bật cluster/relay/APCu tùy nhu cầu. Đây chính là một trong những bí quyết giúp WordPress đạt hiệu năng enterprise.
Bình luận