Thiết kế phần mềm vừa đủ
Kiến trúc·Hướng dẫn

Hiểu về cache trước khi thêm Redis

Cache ở đâu, hết hạn lúc nào và dữ liệu cũ có thể tồn tại bao lâu? Ba câu hỏi trước một quyết định hạ tầng.

Trong bài viết này · 3 mục

Cache không phải nguồn sự thật#

Hãy xác định dữ liệu chuẩn và khoảng thời gian chấp nhận dữ liệu cũ. Với bài viết, một lần build có thể đủ; với quyền truy cập, dữ liệu cũ có thể nguy hiểm.

Một mô hình đơn giản#

typescript
const key = `post:${id}:${publishedVersion}`;
const cached = await cache.get(key);
if (cached) return cached;
const post = await repository.getPublished(id);
await cache.put(key, post, { ttl: 60 });
return post;

Invalidation là một phần thiết kế#

Khi unpublish hoặc xóa bài, cần đồng bộ listing, sitemap, search và cache. Đừng chỉ xóa bản ghi trong database.

MỘT GÓC TRAO ĐỔI

Bạn nghĩ sao?

Góp một câu hỏi, một cách làm hoặc một điều bạn học được.

Đang mở phần thảo luận…