redis鎖的實現,有自己的工具類
import com.yoho8.framework.cache.icache;
import com.yoho8.framework.cache.bean.key;
import com.yoho8.framework.enums.moduleenum;
import com.yoho8.framework.log.logutil;
/**
* @author create by mengweidao 2018/3/14 0014
*/ public class lockutil
/** * 嘗試加鎖
* @param lockkey 鎖的唯一標識
* @return
*/private boolean innertrylock(string lockkey)else
}return false;
}}/**
* 對外提供的加鎖方法
* @param lockkey 鎖標識
* @param timeout 單位:秒 嘗試獲得鎖的有效時間,在這個時間內不斷嘗試獲取鎖
* @return
*/public boolean trylock(string lockkey, long timeout)else else }}
return result;
}catch (exception e)
}/**
* 釋放鎖
* @param lockkey
*/public void realselock(string lockkey)
private boolean checkiflocktimeout(long currenttime, string lockkey)else
}
Redis實現樂觀鎖
悲觀鎖 樂觀鎖 127.0.0.1 6379 set money 100 ok127.0.0.1 6379 set out 0 ok127.0.0.1 6379 watch money 監事 money 物件 ok127.0.0.1 6379 multi 事務正常結束,資料期間沒有發生變動,這個時候...
redis實現樂觀鎖
redis測試監控 正常執行成功!127.0.0.1 6379 set money 100 ok127.0.0.1 6379 set out 0 ok127.0.0.1 6379 watch money 監視money物件 ok127.0.0.1 6379 multi ok127.0.0.1 637...
使用Redis實現樂觀鎖
事務是乙個單獨的隔離操作 事務中的所有命令都會序列化 按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。事務是乙個原子操作 事務中的命令要麼全部被執行,要麼全部都不執行。這點和mysql的事務不太一樣,在mysql事務開啟後,當操作中存在異常,則會導致事務回滾,不會出現資料異...