最贊回答 / study_workSpace
使用互斥鎖(mutex key) ;簡單點講就是類似“鎖”的機制,在緩存更新或者過期的情況下,先獲取鎖,在進行更新或者從數據庫中獲取數據后,再釋放鎖,需要一定的時間等待,就可以從緩存中繼續獲取數據String get(String key){
? ?String value = redis.get(key); ? ?if(value == null){ ? ? ? ?if(redis.setnx(key_Mutex),"1"){
? ? ? ? ? ?redis.expire(key_mutex,3*...
2018-07-05
最贊回答 / AlanLiu0328
insert只會鎖當前行,別人insert和你insert不沖突。 而update就不一樣了。 比如大家都要更新1000元搶Iphone6更新,那么就會搶同一行的鎖
2018-04-10
最新回答 / 慕蓋茨030889
沒有庫存的情況下會insert,但是update執行時更新條數小于0,就會拋出異常、事務回滾。好處就是: 用戶第一次執行秒殺 ? insert -> update(持鎖) ->commit(釋放鎖)????????????????? 用戶第二次執行秒殺 ? ?insert -> result減少了事務行級鎖的時間。
2018-03-26