一、使用一個阻塞隊列,依次對數據進行寫操做(注意,消費的時候用單線程);
二、對一個key使用計數器incr命令,依次處理;
三、對數據依次按順序存入數據庫,並按時間戳順序執行;
四、基於 zookeeper 實現分佈式鎖。每一個系統經過 zookeeper 獲取分佈式鎖,確保同一時間,只能有一個系統實例在操做某個 key,別人都不容許讀和寫。
五、使用樂觀鎖的思想;數據庫
watch price get price $price $price = $price + 10 multi set price $price exec
watch這裏表示監控該key值,後面的事務是有條件的執行,若是從watch的exec語句執行時,watch的key對應的value值被修改了,則事務不會執行。
六、使用相似MVCC版本控制(也是樂觀鎖)的思想;分佈式
使用數據版本(Version)記錄機制實現,這是樂觀鎖最經常使用的一種實現方式。何謂數據版本?即爲數據增長一個版本標識,通常是經過爲數據庫表增長一個數字類型的 「version」 字段來實現。當讀取數據時,將version字段的值一同讀出,數據每更新一次,對此version值加一。當咱們提交更新的時候,判斷數據庫表對應記錄的當前版本信息與第一次取出來的version值進行比對,若是數據庫表當前版本號與第一次取出來的version值相等,則予以更新,不然認爲是過時數據。spa