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