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

By Better Wise

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

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