⚡ Cache là gì?
Ngăn để đồ hay dùng, giúp lấy nhanh hơn.
1
Hiểu nó là gì
Cache giữ tạm dữ liệu thường xuyên được dùng để lần sau không cần tính hoặc tải lại từ đầu.
Nói theo đời thường:
Bạn để chìa khóa ở một cái khay cạnh cửa, thay vì mỗi lần ra ngoài lại đi tìm khắp nhà.
Bạn để chìa khóa ở một cái khay cạnh cửa, thay vì mỗi lần ra ngoài lại đi tìm khắp nhà.
⚠ Chỗ ẩn dụ này hỏng
Khay để chìa khoá cạnh cửa — nhưng chìa khoá thì không tự cũ đi, còn dữ liệu thì có.
Câu nói nổi tiếng nhất ngành: hai việc khó nhất là đặt tên biến và biết lúc nào phải xoá cache. Cache sai khiến người dùng thấy giá cũ, tồn kho cũ, hoặc thấy dữ liệu của người khác. Lỗi cache thường khó tái hiện, vì nó chỉ xảy ra đúng lúc bộ nhớ đệm còn hạn.
2
Code trông thế nào
# Lần đầu: hỏi database, mất 800ms GET /san-pham/7 → database → lưu vào cache 60 giây # 60 giây sau đó: lấy từ cache, mất 2ms GET /san-pham/7 → cache # Nhưng nếu giá vừa đổi ở giây thứ 3 thì sao?
Câu hỏi cuối chính là toàn bộ độ khó của cache.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Dữ liệu đọc nhiều, sửa ít
- Tính toán tốn kém mà kết quả lặp lại
- Cần chịu tải cao
✗ Đừng dùng khi
- Dữ liệu đổi liên tục và phải chính xác tuyệt đối (số dư, tồn kho)
- Dữ liệu riêng của từng người mà cache dùng chung
Chưa cần biết: chiến lược xoá cache, TTL, cache nhiều tầng, CDN.
Để dành tới Mốc 3 — Tự dựng được: Bạn tự đưa được một trang lên mạng, và biết phải sờ vào đâu khi nó không lên.
Dấu hiệu bạn đã cần học nó: Khi người dùng báo “tôi sửa rồi mà vẫn thấy cái cũ” và bạn phải giải thích vì sao.
4
Đi đâu tiếp
- DatabaseThứ cache đang gánh đỡ.
- Load TestCách chứng minh cache thật sự có tác dụng.
- ServerNơi cache thường được đặt.