Redis caching: ba mẫu thiết kế và những cái bẫy hay gặp
DevOps

Redis caching: ba mẫu thiết kế và những cái bẫy hay gặp

30/09/2026 0 lượt xem

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. Đây là ba mẫu tôi thường dùng.

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ố.

Chọn công cụ và mẫu thiết kế phù hợp với mức độ chấp nhận rủi ro của bài toán.

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.

Được phát triển bởi Đại Việt Số dựa trên nền tảng công nghệ của Cloudzone