# ✅ Checkpoint: TTL và cache HTTP

By Better Wise



## Quiz

1. TTL thực sự đảm bảo điều gì?
   - Dữ liệu trong cache không cũ quá khoảng TTL, nhưng không đảm bảo dữ liệu luôn đúng.
   - Key cache không bao giờ bị xóa cho đến khi có lệnh xóa thủ công.
   - Mọi request đều đi xuống database để lấy dữ liệu mới.
   - Cache luôn khớp với database tại mọi thời điểm.
2. Khi cập nhật giá sản phẩm có cache, thứ tự đúng là gì?
   - Xóa cache trước, sau đó ghi database.
   - Chỉ cần đặt TTL ngắn, không cần xóa cache khi ghi.
   - Ghi database, commit, rồi xóa cache key.
   - Ghi cache bằng giá mới, rồi ghi database.
3. Vì sao vẫn nên đặt TTL song song với invalidation chủ động?
   - Vì Redis không cho phép xóa key nếu key không có TTL.
   - Vì lệnh xóa cache có thể thất bại hoặc bị bỏ sót, TTL là lưới an toàn.
   - Vì TTL làm giảm số lần phải ghi database.
   - Vì TTL giúp dữ liệu trong cache luôn đúng ngay sau khi ghi.
4. Version key giải quyết vấn đề gì tốt nhất?
   - Đảm bảo dữ liệu không bao giờ bị cũ.
   - Giảm dung lượng memory mà cache sử dụng.
   - Invalidate hàng loạt nhiều key cùng lúc bằng một lệnh tăng version.
   - Thay thế hoàn toàn nhu cầu đặt TTL.
5. Header `Cache-Control: no-cache` có nghĩa là gì?
   - Cấm lưu response ở mọi nơi, kể cả trình duyệt.
   - Chỉ CDN được lưu, trình duyệt thì không.
   - Response tươi vĩnh viễn và không cần hỏi lại server.
   - Được lưu nhưng phải revalidate với server trước mỗi lần dùng.
6. Response của `/api/me` phụ thuộc cookie người dùng nên đặt header thế nào?
   - `public, max-age=3600` để CDN phục vụ nhanh.
   - `private, no-cache` kèm ETag để vẫn nhận được 304.
   - `public, s-maxage=86400` để CDN giữ một ngày.
   - `Vary: *` là đủ, không cần directive khác.
7. Để được đặt `max-age=31536000` kèm `immutable` cho một file static asset, tên file bắt buộc phải chứa ____ của nội dung.
8. Hãy tự đánh giá khả năng chọn TTL và thiết kế invalidation cho một tính năng cụ thể (ví dụ: trang chi tiết sản phẩm có giá và tồn kho). Bạn sẽ trả lời câu hỏi 'dữ liệu này cũ bao lâu thì chấp nhận được' và chọn chiến lược ra sao?


---

## Contents

Part of [🗄️ Caching căn bản: Redis, TTL và CDN cho người mới](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi.md)

- **🧱 Nền tảng cache: vì sao và khi nào**
  - [💡 Cache là gì và khi nào nên dùng](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/cache-la-gi-va-khi-nao-nen-dung.md)
  - [🔁 Cache-aside: luồng đọc ghi kèm ví dụ](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/cache-aside-luong-doc-ghi-voi-vi-du.md) (sign-in required)
  - [✅ Checkpoint: Nền tảng cache](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/checkpoint-nen-tang-cache.md) (sign-in required)
- **⏱️ TTL, invalidation và cache phía HTTP**
  - [🗑️ TTL và invalidation: chọn thời điểm xóa](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/ttl-va-invalidation-chon-thoi-diem-xoa.md)
  - [📨 HTTP cache headers: Cache-Control, ETag, Vary](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/http-cache-headers-cache-control-etag-vary.md)
  - [🌐 CDN cho static assets và cache busting](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/cdn-cho-static-assets-va-cache-busting.md)
  - [✅ Checkpoint: TTL và cache HTTP](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/checkpoint-ttl-va-cache-http.md) — this lesson
- **⚠️ Redis và các lỗi cache thường gặp**
  - [🧰 Redis nhập môn: GET, SET, TTL và key naming](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/redis-nhap-mon-get-set-ttl-va-key-naming.md)
  - [🚨 Stale data và cache stampede](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/stale-data-va-cache-stampede.md)
  - [🤖 Yêu cầu AI thêm cache mà không phá logic](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/yeu-cau-ai-them-cache-khong-pha-logic.md) (premium content)
  - [✅ Checkpoint: Redis và lỗi cache](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/checkpoint-redis-va-loi-cache.md) (premium content)
- [Course cheatsheet](https://everwise.study/courses/caching-can-ban-redis-ttl-va-cdn-cho-nguoi-moi/cheatsheet.md) (premium content)
