Caching cho Node.js API hoạt động theo nhiều tầng, mỗi tầng phục vụ mục đích khác nhau. Tầng in-memory dùng node-cache hoặc Map để cache dữ liệu truy cập thường xuyên ngay trong process, truy xuất cực nhanh nhưng mất khi restart. Tầng distributed dùng Redis để cache chia sẻ giữa nhiều server instances, phù hợp cho production.
Pattern phổ biến nhất là cache-aside: kiểm tra cache trước, nếu miss thì query database rồi set vào cache với TTL, ví dụ cache key dạng users:${id}:profile với TTL 5 phút.
Phần khó nhất là invalidation — có thể dùng TTL-based (tự hết hạn sau thời gian) hoặc event-based (khi data thay đổi thì xóa cache liên quan), và cần cẩn thận với cache stampede khi nhiều requests cùng miss cache đồng thời.