为什么Zookeeper天生就是一副分布式锁的胚子?(5)
发布时间:2020-03-15 20:08 所属栏目:115 来源:站长网
导读:selectgoods_numfromgoodswheregoods_name=小本子; updategoodssetgoods_num=goods_num-1wheregoods_name=小本子; 上面的 SQL 是一组的,通常先查询出当前的 goods_num,然后再 goods_num 上进行减 1 的操作修改库
select goods_num from goods where goods_name = "小本子"; update goods set goods_num = goods_num -1 where goods_name = "小本子"; 上面的 SQL 是一组的,通常先查询出当前的 goods_num,然后再 goods_num 上进行减 1 的操作修改库存。 当并发的情况下,这条语句可能导致原本库存为 3 的一个商品经过两个人购买还剩下 2 库存的情况就会导致商品的多卖。那么数据库乐观锁是如何实现的呢? 首先定义一个 version 字段用来当作一个版本号,每次的操作就会变成这样: select goods_num,version from goods where goods_name = "小本子"; (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读