Checkpoint: Nền tảng cache
Sign in to view the full content of this lesson. Sign in
Quiz
- Cache thực chất giúp gì cho hệ thống?
- Đảm bảo dữ liệu luôn mới nhất và đúng tuyệt đối
- Giảm dung lượng lưu trữ của database
- Tránh phải tính lại dữ liệu bằng cách giữ bản sao ở nơi đọc nhanh hơn
- Làm cho database và các nguồn dữ liệu chạy nhanh hơn
- Ba câu hỏi quyết định một endpoint có nên cache hay không là gì?
- Tần suất đọc, độ tươi cần thiết của dữ liệu và chi phí tính lại
- Số lượng server, dung lượng RAM và tốc độ mạng
- Số lượng user, số lượng bảng và số dòng trong bảng
- Ngôn ngữ backend, framework và loại database đang dùng
- Endpoint nào sau đây là ứng viên rõ ràng nhất để cache?
- GET /search?q=..., tìm kiếm với từ khóa gần như vô hạn
- GET /products/123, đọc rất nhiều, ghi vài lần mỗi ngày, query join 3 bảng mất 600ms
- POST /orders, tạo đơn hàng mới
- GET /me/wallet, số dư ví của người dùng
- Trong cache-aside, thứ tự đúng khi cập nhật dữ liệu là gì?
- Xóa key trong cache trước, rồi mới ghi database
- Cập nhật nguồn gốc trước, rồi xóa key trong cache
- Ghi giá trị mới vào cache trước, rồi ghi database
- Chỉ cần cập nhật database, không cần đụng tới cache
- Vì sao cache-aside xóa key thay vì ghi đè giá trị mới vào cache khi dữ liệu thay đổi?
- Vì xóa key tránh được việc hai request ghi chen nhau làm cache giữ giá trị cũ
- Vì lệnh xóa chạy nhanh hơn lệnh ghi
- Vì cache không hỗ trợ lưu giá trị mới
- Vì xóa key làm TTL tự động dài ra
- Trong luồng đọc của cache-aside, bước đầu tiên là đọc ____ trước khi chạm database.
- Nếu cập nhật database mà quên xóa cache, dữ liệu cũ chỉ biến mất khi ____ hết hạn.
- Hãy tự vẽ lại luồng đọc và luồng ghi của cache-aside cho endpoint GET /products/123, rồi chỉ ra điều gì xảy ra nếu xóa cache trước khi ghi database.
Sign in to submit answers.