Avatar
0
devman Beginner
devman Beginner
làm sao để read/write dữ liệu từ Redis cluster mà bảo đảm consistency
chào mọi người,

Mình sử dụng Redis cluster trong dự án và Java spring boot với redis library là Lettuce. Theo mình biết thì mặc định khi write dữ liệu sẽ write vào node master, còn read sẽ read ở node slave. Mình gặp phải vấn đề khi chạy application theo kiểu active - active. khi instance 1 write, sau đó không lâu thì instance 2 sẽ lấy lại dữ liệu và xử lý nhưng redis chưa đồng bộ dữ liệu từ node master tới slave nên dẫn tới dữ liệu không đồng nhất. Nếu mình write/read trên master thì ảnh hưởng đến việc write và làm chậm chương trình. Mình đang tạm thời xử lý theo cách là dữ liệu sẽ chỉ xử lý trên một instance(hash theo key để biết được dữ liệu nào sẽ được xử lý bởi instance nào) và sử dụng thêm memory cache(caffeine cache) để cache lại dữ liệu. Liệu có cách nào để tốt hơn để xử lý vấn đề trên không ạ? và có best practice nào để cải thiện chương trình không?

  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
Có vẻ như em bị hiểu nhầm về Redis cluster. Em có thể đọc bài viết này nhé: https://redis.io/docs/management/scaling/

Dữ liệu trong redis cluster sẽ được phân bố trên các node thông qua cơ chế phân mảnh dữ liệu theo phép chia lấy dư chứ không phải là ghi vào master và đọc trên slave như em nói.

  • 0
  • Reply