# 🤖 Yêu cầu AI thêm cache mà không phá logic

By Better Wise

> This lesson is premium content. Sign in and purchase the course to view the full content.

Bài trước bạn đã thấy hai cái bẫy: dữ liệu cũ (stale data) và cache stampede, cùng cách xử lý ở mức khái niệm. Bài này là bài thực dụng nhất của module: bạn thường không tự viết từng dòng cache, bạn nhờ AI viết, nhưng bạn là người chịu trách nhiệm về thứ tự đọc ghi trong code đó.

Sau bài này, bạn có thể:

- Viết prompt nêu rõ cache key, TTL, điểm invalidation và tiêu chí chấp nhận.
- Nhận ra bốn kiểu prompt mơ hồ hay sinh bug cache.
- Review code cache do AI sinh ra theo checklist thứ tự đọc ghi.
- Dùng test và phần giải thích của AI để kiểm chứng thay vì tin ngay.

## "Thêm cache cho hàm này" là prompt dễ sinh bug nhất

Giả sử endpoint `GET /products/{id}` trả JSON có giá theo locale và currency. Bạn gõ: "Thêm Redis cache cho hàm getProduct để nhanh hơn". AI sẽ làm ngay, nhưng nó phải tự đoán ba thứ:

- **Key**: nó đoán `product:{id}`. Nếu response còn phụ thuộc locale hoặc currency, người xem USD sẽ nhận giá VND.
- **TTL**: nếu nó dùng `SET` không kèm `EX`, key tồn tại vĩnh viễn, dữ liệu cũ không bao giờ tự hết.
- **Điểm invalidation**: nó thường đặt `delete` ở chỗ trông hợp lý nhất, không phải chỗ đúng.

Điểm mấu chốt: AI viết cú pháp Redis rất nhanh, nhưng nó không biết nghiệp vụ của bạn. Phần nghiệp vụ phải nằm trong prompt, không để AI đoán.

## Bốn mảnh ghép của một prompt cache đủ chắc

| Mảnh ghép | Câu hỏi phải trả lời | Ví dụ |
| --- | --- | --- |
| Cache key | Cái gì làm hai response khác nhau? | `product:{id}:{locale}:{currency}` |
| TTL | Dữ liệu cũ bao lâu thì chấp nhận được? | 300 giây với giá, 3600 giây với mô tả |
| Điểm invalidation | Sự kiện nào làm dữ liệu đã cache thành sai? | sau khi `UPDATE products` và commit xong thì xóa key |
| Tiêu chí chấp nhận | Làm sao biết code đúng? | hit/miss đúng, Redis down vẫn trả 200, update xong đọc lại thấy dữ liệu mới |

Prompt mẫu đầy đủ cho ví dụ trên:

## In this lesson

- Ví dụ thực tế: AI viết gì, bạn sửa gì
- Luồng đọc
- Luồng ghi, chỗ AI hay sai nhất
- Sáu điểm dừng chân khi review code cache AI sinh
- Chốt lại và bước tiếp theo


---

## 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)
- **⚠️ 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) — this lesson
  - [✅ 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)
