Thêm cache là cách nhanh nhất để giảm tải cơ sở dữ liệu, và cũng là cách nhanh nhất để tạo ra những lỗi khó tìm nhất. Dưới đây là ba mẫu thiết kế tôi thường dùng cùng những cái bẫy đã gặp.
Ba mẫu thiết kế
1. Cache-aside
Ứng dụng tự kiểm tra cache trước, nếu không có thì đọc từ cơ sở dữ liệu rồi ghi lại vào cache. Đơn giản, dễ hiểu, và là lựa chọn mặc định của tôi.
2. Write-through
Mọi lần ghi đều đi qua cache rồi mới xuống cơ sở dữ liệu. Dữ liệu trong cache luôn mới, đổi lại độ trễ khi ghi cao hơn.
3. Write-behind
Ghi vào cache trước rồi đồng bộ xuống sau. Nhanh nhưng cần chấp nhận rủi ro mất dữ liệu khi cache gặp sự cố.
Những cái bẫy hay gặp
- Cache stampede: nhiều yêu cầu cùng làm mới một khóa hết hạn cùng lúc.
- Khóa không có TTL: bộ nhớ đầy dần cho đến khi hệ thống chậm hẳn.
- Dữ liệu cũ: quên xóa cache khi dữ liệu gốc thay đổi.
Có hai việc khó trong khoa học máy tính: vô hiệu hóa cache và đặt tên.
