redis事务、锁、分布锁

本文介绍了Redis中的事务处理,包括事务的三个阶段、四大指令和并发事务处理示例。接着讨论了锁在并发控制中的作用,以及单机锁在分布式环境下的局限性。最后,重点阐述了分布锁的概念及其使用方法,强调了获取和释放锁的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值