这个叫幂等性,即同一个操作,无论重复多少次,其结果应该是一致的。
回到你这个问题,一个人发了10次秒杀,应该等同于发一次秒杀。那么你在redis应该记录一下这个用户的唯一标识,标识其是否进行过秒杀活动。
秒杀成功,同样mysql也要做记录,避免服务重启等原因造成缓存丢失,重复秒杀的情况。
NP,确实是这个道理,我咋就没想到EMMMMMMM
redis -10了,为啥你的mysql才-1呢......
一个用户只允许,秒杀一件商品,他重复提交了十次,只有一次成功,但是redis库存已经没了,这应该涉及到缓存一致性的东西了。
没用用Redis的LUA的脚本写,分开写原子性都保证不了
过了半年,我才想到确实是LUA才行,那个标识符不行,如果失败了,用户岂不是不能秒杀了?