Chuyển tới nội dung chính

14.2 — 1. Caching Fundamentals

Mục tiêu bài học

  • Nắm được ý chính của bài và mối liên hệ với module.
  • Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
  • Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.

Nội dung bài học

14.2.1 — Cache là gì và tại sao quan trọng?

Cache là lớp lưu trữ tạm thời kết quả tính toán hoặc truy vấn tốn kém, giúp trả lời request sau nhanh hơn mà không cần tính lại.

Các khái niệm cốt lõi:

Khái niệmGiải thích
Cache HitRequest tìm thấy dữ liệu trong cache — trả về ngay
Cache MissKhông tìm thấy — phải truy vấn nguồn gốc (DB, API)
TTL (Time-To-Live)Thời gian cache còn hiệu lực trước khi bị xóa
EvictionCache bị xóa do hết TTL, hết bộ nhớ, hoặc chủ động
Stale-While-RevalidateTrả về dữ liệu cũ trong khi làm mới ngầm ở background
Cache InvalidationXóa hoặc cập nhật cache khi dữ liệu gốc thay đổi — bài toán khó nhất trong caching

"There are only two hard things in Computer Science: cache invalidation and naming things." — Phil Karlton

Các loại cache trong hệ thống .NET:

LoạiVí dụPhạm viTốc độDùng khi
In-MemoryIMemoryCacheProcessCực nhanh (~ns)Dữ liệu tĩnh, single server
DistributedRedis, MemcachedClusterNhanh (~ms)Multi-instance, session, token
CDNCloudflare, Azure CDNGlobalNhanh theo vùngStatic assets, API response công khai
DB Query CacheEF Core 2nd-level cacheDB layerTrung bìnhQuery phức tạp, đọc nhiều

Bài tập áp dụng

  1. Tóm tắt bài học bằng ngôn ngữ của bạn.
  2. Liên hệ nội dung với một tình huống thực tế trong dự án.
  3. Đề xuất một cải tiến cụ thể sau khi học bài này.

Tự kiểm tra

  • Bạn có thể giải thích lại nội dung chính trong 2 phút không?
  • Bạn có ví dụ áp dụng thực tế chưa?
  • Bạn biết bước tiếp theo cần học/triển khai là gì không?

Kết luận

Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.

Điều hướng