Vì sao thực tế lại “không khác mấy”?

1️⃣ File cache bây giờ không còn chậm như ngày xưa

  • SSD / NVMe → tốc độ đọc ~ micro-second
  • OS có page cache → file hay đọc sẽ nằm luôn trong RAM
  • PHP đọc file nhỏ (file_get_contents) cực nhanh

👉 Với cache nhỏ – đọc nhiều, file cache ≈ Redis


2️⃣ Redis cũng… vẫn phải qua nhiều tầng

Redis không phải “đọc RAM cái là xong” đâu:

PHP
 ↓
Socket (TCP/Unix)
 ↓
Redis process
 ↓
Parse protocol
 ↓
Lookup key
 ↓
Serialize trả về

Trong khi file cache:

PHP
 ↓
OS page cache (RAM)

➡️ Overhead của Redis ăn mất lợi thế RAM nếu workload nhỏ.


3️⃣ Với WordPress / CI3 / PHP nói chung

Thường cache kiểu:

  • HTML fragment
  • Query result
  • Object nhỏ
  • TTL ngắn

👉 Đây là use case mà file cache rất hợp


4️⃣ Nếu chạy trên cùng 1 server

  • Redis local
  • File cache local
    → độ trễ gần như bằng nhau

Khác biệt chỉ rõ khi:

  • Redis chạy cluster
  • App chạy nhiều node
  • Cần shared cache

Khi nào Redis mới “ăn đứt”?

Redis chỉ vượt trội rõ ràng khi có các điều kiện sau:

✅ 1. High concurrency

  • 1000+ request / giây
  • Nhiều PHP-FPM worker đọc cache cùng lúc
    File cache → lock / inode / IO queue
    Redis → xử lý tốt hơn

✅ 2. Cache phức tạp

  • Hash
  • List
  • Set
  • Counter
  • Rate limit
  • Session

👉 File cache làm mấy cái này rất cực & không an toàn


✅ 3. Multi-server

WEB1
WEB2
WEB3
   ↘ Redis ↙

File cache lúc này toang ngay


✅ 4. Cache lớn (GB)

  • Redis có eviction policy (LRU, LFU)
  • File cache → tự bạn dọn

Benchmark thực tế (kinh nghiệm triển khai)

Trường hợpFile cacheRedis
1–100 req/s🔥 Rất nhanh🔥 Rất nhanh
Cache HTML👍👍
Cache query👍👍
Session😐🔥
Counter🔥
Multi server🔥
Dễ vận hành🔥😐

Kết luận ngắn gọn

Cache file ≠ tệ
Redis ≠ thần thánh cho mọi bài toán

👉 Nếu:

  • Single VPS
  • WordPress / CI3
  • SEO site / content site
  • Traffic vừa

➡️ File cache + OPcache + FastCGI cache
= combo ngon – nhẹ – ít lỗi nhất