Amazon ElastiCache Deep Dive
Managed Redis & Memcached.
1. Redis vs Memcached
| Feature | Redis | Memcached |
|---|---|---|
| Data Types | String, List, Set, Hash, Sorted Set | String only |
| Persistence | Yes (AOF/RDB) | No (In-memory only) |
| High Availability | Replication, Auto-failover | No |
| Pub/Sub | Yes | No |
| Use Case | Complex caching, Leaderboard, Session Store | Simple object caching, Multithreaded architecture |
Go for Redis
Trong 95% trường hợp, Redis là lựa chọn tốt hơn nhờ tính năng phong phú và khả năng HA. Chỉ dùng Memcached nếu bạn cần cache những object cực nhỏ và đơn giản với quy mô cực lớn (multithreaded).
2. Caching Strategies
Lazy Loading (Cache-Aside)
- Ưu điểm: Chỉ cache dữ liệu được request. Tiết kiệm RAM.
- Nhược điểm: Cache miss gây chậm request đầu tiên. Dữ liệu có thể bị cũ (stale).
Write-Through
- App ghi vào DB và Cache đồng thời.
- Ưu điểm: Data trong cache luôn mới.
- Nhược điểm: Ghi chậm hơn. Lãng phí RAM cho data ít đọc.
3. Redis Cluster Mode
- Disabled: 1 Shard (1 Primary + N Replicas). Tốt cho read-heavy.
- Enabled: Nhiều Shards. Dữ liệu được chia nhỏ ra các Shard. Tốt cho write-heavy và dataset lớn (vượt quá RAM của 1 node).