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ợp | File cache | Redis |
|---|
| 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