2 Answers
- Thường khi sử dụng cache là em sẽ lưu vào cache, đọc từ cache và đồng bộ dữ liệu từ cache vào db hơn, nên anh nghĩ em có thể update lại service của em theo hướng này.
- Tuy nhiên nêu service của em đã chạy lâu rồi và không dễ để thay đổi, em có thể tạo 1 job liên tục đọc vào db xem có update gì không thì đồng bộ lên cache, đó cũng là 1 cách không tệ.
Không biết anh có đang hiểu đúng câu hỏi của em không nhỉ?
-
0
A. Là Author
B. Là Book
C. Là BookAndAuthor.
- Như vậy thì anh đang hình dùng là em sẽ lưu 1 map là:
authorAndBookMap[{authorId, bookId}, C]
- Xóa A thì sẽ cần xóa hết các key có liên quan đến A từ bookAndAuthorMap, sẽ có 2 cách:
a. Lưu trong redis 1 map bookIdsByAuthorId[authorId, List[bookId]] và khi xóa A thì chỉ cần lấy list bookId từ map ra xóa là được: Cách này thì có ưu điểm là list mà ít thì ok, nhưng nhược điểm là khi list mà nhiều thì sẽ chậm và tốn bộ nhớ.
b. Khi có update thì truy vấn từ DB các bookId có liên quan đến A và gọi xóa khỏi cache, sẽ lấy từ từ ví dụ 100 bản ghi ra xóa sẽ đỡ tốn bộ nhớ. Nhược điểm là việc xóa có thể bị chậm. Nhưng anh nghĩ cách này phù hợp hơn vì nó áp dụng được cho mọi bài toán từ nhỏ đến lớn.
-
0