數據庫賬戶餘額高併發存儲更新方式

這一類數據在數據存儲過程中會遇到併發請求的問題,如何保證兩次請求依次執行是一個需要解決的問題。比如用戶經驗的增加,等也屬於這類問題。

在實際工程中,我主要會用到兩種方式去解決和類問題。一種是利用redis強大的單線程操作能力,incrby 和decrby 可以很方便的處理這類問題,然後定時更新到數據庫中即可。而且可滿足高併發的請求,存儲速度很快。

另一種存儲方式是在數據庫中增加一個版本號字段,這個字段用來保存當前餘額的版本號,在更新餘額之前獲取版本號信息,在更新時增加判斷條件,兩個版本號必須相同,更新的同時將版本號+1,這樣就可以保證兩個請求同時到來時只會執行一個,失敗之後只需要重新請求即可。

這就是我在工程實踐中遇到的諸如此類的字段更新方式。

以後會不定期更新前後端知識,希望大家支持。


分享到:


相關文章: