cache mình thấy mệt nhất là vụ consistent, trước 1 dự án chuối nó làm thuần redis, còn query thì dùng raw sql
, data nào cần cache thì dùng redis, lúc lấy ra thì xem redis chưa có thì query db rồi set vào redis lại.
Nhưng mỗi khi update thông tin thì phải biết mà xóa redis key đi. Mà bạn tưởng tượng dữ liệu trong redis là tổng hợp của nhiều bảng, trong khi 1 api nó chỉ sửa 1 bảng thì méo biết đường nào mà xóa cache. Chưa kể 1 bảng đó nó join ra nhiều dữ liệu -> nhiều key. Do app lúc đó còn nhỏ và cũng hạn chế cache nên vẫn còn kiểm soát được.
Mình đang muốn tìm 1 cơ chế tự động nào đó, các bác có biết ko. Mình đang nghĩ cái hướng là nếu dùng model thì mình list được các key liên quan tới model đó, nếu sửa/xóa model thì nó cũng trigger để xóa các key tương ứng.