問題描述:多客戶端同時並發寫一個key,可能本來應該先到的數據后到了,導致數據版本錯了。或者是多客戶端同時獲取一個key,修改值之后再寫回去,只要順序錯了,數據就錯了。
一個key的值是1,本來按順序修改為2,3,4,最后是4,但是順序變成了4,3,2,最后變成了2.
首先使用分布式鎖,確保同一時間,只能有一個系統實例在操作某個key
然后修改key的值時,要先判斷這值的時間戳是否比緩存里的值的時間戳更靠后,如果是舊數據就不要更新了
轉自:中華石杉Java工程師面試突擊
問題描述:多客戶端同時並發寫一個key,可能本來應該先到的數據后到了,導致數據版本錯了。或者是多客戶端同時獲取一個key,修改值之后再寫回去,只要順序錯了,數據就錯了。
一個key的值是1,本來按順序修改為2,3,4,最后是4,但是順序變成了4,3,2,最后變成了2.
首先使用分布式鎖,確保同一時間,只能有一個系統實例在操作某個key
然后修改key的值時,要先判斷這值的時間戳是否比緩存里的值的時間戳更靠后,如果是舊數據就不要更新了
轉自:中華石杉Java工程師面試突擊
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。