Yêu cầu AI thêm cache mà không phá logic
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
SETkhông kèmEX, 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
About this course
Part of Caching căn bản: Redis, TTL và CDN cho người mới — Nắm cách cache hoạt động để tăng tốc sản phẩm, biết khi nào dùng Redis, TTL hay CDN và tránh lỗi dữ liệu cũ.
- Level
- Beginner
- Goal
- Fundamentals
- Language
- Vietnamese
- Focus
- cache-aside và TTL invalidation CDN và cache HTTP tránh dữ liệu cũ
- Prior knowledge
- Biết một ngôn ngữ backend cơ bản, Hiểu request/response HTTP
- Practice
- Worked examples
- Time
- ~2.5h
- Voice
- một backend engineer thích vẽ sơ đồ luồng dữ liệu lên bảng, giải thích cache bằng ví dụ tủ lạnh và luôn hỏi 'dữ liệu này cũ bao lâu thì chấp nhận được'
- Not covered
- Redis cluster nâng cao, thiết kế cache phân tán đa tầng, benchmark chuyên sâu
This lesson is premium content. Sign in and purchase the course to view the full content. Sign in