Redis事务操作

事务操作

  1. Redis事务的主要作用就是串联多个命令防止别的命令插队
  2. MutiExecdiscard:
    (1)从输入Muti命令开始,输入的命令都会依次进入命令队列,但不会执行
    (2)直到输入Exec命令后,Redis会将之前的命令队列中的命令依次执行
    (3)组队过程中可以通过discard来放弃组队
    (4)Muti表示事务开启,执行完Execdiscard表示事务结束

在这里插入图片描述
在这里插入图片描述- 事务的错误处理:

  1. 若组队中某个命令出现了错误,执行时整个的队列都会被取消
  2. 如果在执行阶段某个命令出现了错误,则只有报错的命令不会被执行,其余命令还是会执行,不会回滚

在这里插入图片描述
在这里插入图片描述

乐观锁与悲观锁

  • 悲观锁:
  1. 悲观锁顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次拿数据都会上锁,这样别人想拿数据就会被阻塞
  2. 传统的关系型数据库中行锁表锁读锁写锁都是在操作之前先加锁,缺点是效率低
  • 乐观锁:
  1. 乐观锁顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以每次拿数据都会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制
  2. 乐观锁适用于多读的应用类型,可以提高吞吐量
  • 乐观锁与悲观锁的使用:
  1. WATCH key [key ...]在执行multi之前,先执行Watch,可以监视一个或多个key,如果在事务执行之前这个(这些)key被其他命令所改动,那么事务将被打断(不会被执行)
  2. unwatch取消Watch命令对所有key的监视,如果执行watch命令后Execdiscard命令先被执行,就不需要执行unwatch

在这里插入图片描述

Redis事务三特性

  1. 单独的隔离性:事务的所有命令多会被序列化,按顺序执行,事务在执行过程中,不会被其他客户端发送的命令请求锁打断
  2. 没有隔离级别的概念:队列中的命令在没有提交之前不会实际被执行,因为事务在提交前任何命令都不会被执行
  3. 不保证原子性:事务中如果有一条命令失败后,其后的命令仍然会被执行,没有回滚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m0_46427273

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

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

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

打赏作者

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

抵扣说明:

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

余额充值