6. Redis事务和锁

事务

是一个单独的隔离操作(串联多个操作)
事务中所有命令都会序列化,按顺序执行
执行过程中不会被其他命令中断

命令

  1. multi
    开启事务,组队阶段,将命令放入队列中,但是并没有开始执行
  2. exec
    开始执行,执行阶段
  3. discard
    撤销组队,全部放弃(在开始执行之前执行)

异常情况

组队阶段出现异常(可以理解为:编译报错):撤销组队,所有命令都不会执行
执行阶段出现异常(可以理解为:执行报错):会继续执行其他命令(不具备原子性和一致性???)

事务之间冲突

Redis解决冲突方式:乐观锁(给数据加版本号,每次修改数据同时修改版本号,check-and-set,只有修改数据的时候才会检查版本是否一致)
若修改数据时,检查版本与所持有的数据版本不一致,则事务被打断

  • 可以通过命令watch监视一个或多个key,监视其变化
  • unwatch取消监视

Redis事务特性(和MySQL的ACID不一样)

  • Isolate 隔离性
  • 没有隔离级别
  • 不保证原子性

Redis应用案例,秒杀,深入理解事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

holyZhang2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值