redis事务、锁、分布锁

redis事务、锁、分布锁都是对redis数据的一种并发保护措施,只是作用域和应用场景不同。

一、redis事务

redis事务指的是提供一种将多个命令打包,以自行按顺序地执行,如果有一个环节出错,所有操作都会回滚。如果有用户在操作这个事务当中的数据,其他用户都不能访问。

1.1 事务三个阶段

  1. 开启事务
  2. 命令入列
  3. 执行事务/放弃事务

1.2 事务四大指令

  • multi:开启一个事务
  • exec:执行一个事务
  • discard:取消一个事务
  • watch:为事务提供一个锁,用来监听一个或多个变量,如果这监听项在执行事务(也就是不能同时修改某个监听项)之前被监听到改变了,那么整个事务就会回滚。
    watch必须写在事务的前面,不能写在事务当中

1.3 维护库存数据的并发事务处理举例

监听 -> 开启事务 -> 读写数据 -> 执行事务

  1. 查看redis服务器种是否缓存对应商品的库存数据,如果没有,从数据库中查询并缓存
		int stock = 0;

        Object value = redisTemplate.opsForValue().get(id);
        if(value == null){
   
            ProductDO productDO = productDAO.selectById(id);
            stock = productDO.getStock();
            redisTemplate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值