Avatar
0
Thân Nam Teacher
Thân Nam Teacher
Đồng bộ dữ liệu dưới Database với cache(Ehcache)
Em có câu hỏi là: khi mình lưu dữ liệu Api vào cache để khi các lần kế tiếp gọi Api thì lấy luôn dữ liệu từ cacche ra. Nếu trường hợp database có thay đổi thì còn cách nào để đồng bộ dữ liệu database với cache ngoài việc clear cache để gọi lại dữ liệu ạ.
  • Answer
Remain: 5
2 Answers
Avatar
Em có thể viết thông qua Backend, khi DB thay đổi phải qua backend -> update cache luôn. Ví dụ updateAge(Int a) {cache.set(cache, a), db.update(a,a)}
  • 0
  • Reply
Avatar
tvd12 Teacher
tvd12 Teacher
Hiện tại anh đang áp dụng 2 cách:
  1. Đồng bộ dữ liệu sau 1 khoảng thời gian ví dụ 15 giây đồng bộ 1 lần, cách này phù hợp với dữ liệu nhỏ, ít thay đổi, không cần thiết phải quá realtime.
  2. Đồng bộ dữ liệu thông qua việc liên tục lấy các bản ghi theo lastUpdatedAt, cách này phù hợp với dữ liệu nhiều bản ghi, thường xuyên thay đổi và yêu cầu realtime cao.

Tuy nhiên anh đang thấy em đề cập đến Ehcache, em có thể nói rõ hơn trường hợp của mình không?

  • 0
  • Reply
Em chọn EHCache vì có một số tính năng mạnh mẽ hơn và cung cấp một số tùy chọn cấu hình phong phú hiện tại thì em đang làm theo ý 1 của anh là cấu hình cache một khoản thời gian nào đó sẽ clear để đồng bộ lại dữ liệu mới.Còn ý 2 của anh em chưa hiểu lắm ạ có phải là khi mình update dữ liệu thì mình cần phải update lastUpdatedAt của cache(cấu hình dưới db) để khi lastUpdatedAt có thay đổi thì sẽ chạy job clear cache đi phải k ạ  –  Thân Nam 1685276781000
Đúng rồi em ạ  –  tvd12 1685281677000