最赞回答 / 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