Senior #cache#redis
Caching: các chiến lược và vấn đề cần lưu ý?
⚡ Trả lời nhanh
Cache-aside (app tự đọc/ghi cache), write-through, write-back. Khó nhất là invalidation, kèm các vấn đề cache stampede, penetration và dữ liệu cũ (stale).
// Cache-aside
async function getUser(id) {
const cached = await redis.get(`user:${id}`);
if (cached) return JSON.parse(cached);
const user = await db.users.find(id);
await redis.set(`user:${id}`, JSON.stringify(user), 'EX', 300); // TTL 5 phút
return user;
}