订单加锁

订单加锁

    • 第一种方式使用数字据增加版本字段的方式针对卖商品比较合适
    • 第二种方式使用redis加锁的方式针对竞争性操作合适
    • 第三种方式 redis watch

第一种方式使用数字据增加版本字段的方式针对卖商品比较合适

基本思路是在商品活订单等地方增加一个版本号字段(有的说是增加锁标志,你可以不用想这种方式),增加之后第一次查询是否可以交易的时候把版本号查询出来,然后当真正的去更新订单状态的时候要把版本号也作为where条件去更新,如果更新失败就重新循环这个订单,或者按你的其他逻辑走

第二种方式使用redis加锁的方式针对竞争性操作合适

当每次走到交易的逻辑的时候向redis设置一个key 必须使用 setnx 这样如果设置成功说明没有没有锁定那就可以交易,设置失败就说明被锁了

第三种方式 redis watch

要求数据全部在 redis中所有的操作全是redis操作,使用watch 效果好

你可能感兴趣的:(其他)