01/10/2018, 09:23

Lưu trữ dữ liệu trên redis

Mọi người cho em hỏi, em có cái ứng dụng phục vụ cho thanh toán online ( bán thẻ điện thoại )
Dữ liệu về thẻ thì em để trên DB oracle, do bảng dữ liệu lớn quá (vài triệu row), nên em sử dụng redis làm cache, thẻ nào chưa bán thì em nhét lên redis (dữ liệu trên redis tương đương khoảng 200 row trên DB), bán xong thì xóa đi, cập nhật lại trạng thái trên DB. Vừa rồi em dính quả máy chủ redis bị mất điện, khi bật lại máy chủ thì redis khôi phục lại dữ liệu từ ổ cứng vốn là dữ liệu cũ nên dính vài trăm thẻ đã bán ra, xóa khỏi redis rồi nhưng mà bị khôi phục lại, khách hàng nó mua thấy thẻ bị dùng rồi nó chửi cho to đầu.
Hiện tại em xây dựng redis theo mô hình master-sentinel-slave


Nhưng mà em vẫn chưa yên tâm, do việc đồng bộ giữa redis master và slave là bất đồng bộ, nên có thể khi master chết, nhưng chưa kịp đồng bộ dữ liệu sang slave
Các bác có kinh nghiệm cho em hỏi em phải xử lý case này như thế nào ạ? có giải pháp nào phù hợp hơn so với sử dụng redis không?
cám ơn các bác đã đọc ạ

Bài liên quan
0