Redis事物

Redis事物特点

Redis对事物是部分支持的,这一点在“全体连坐”和“冤头债主”中可以看出

Redis事物相关命令

  1. multi:开始一个事物,一个事物中可以有多个命令,每一个命令都将被序列化并放入到队列中,事物提交后将顺序执行这些命令,执行过程中不允许加塞。
  2. exec:提交事物,顺序执行事务中的所有命令
  3. discard:取消事物
  4. watch:监控一个或多个key,若事物执行之前这个(或这些)key被其他命令所改动,那么事物将被打断,整个事物队列都不会被执行
  5. unwatch:取消监控

特点:

正常执行

即正常事物,事物以multi开始,以exec结束,中间没有任何错误

取消执行

使用discard取消事物

全体连坐

  1. 当事物中有一个命令出现错误时,整个事物中的所有命令都将执行失败。
  2. 特点是输入指令的过程中就出现了错误,就像Java中的语法错误一样,编译时就知道它存在错误

冤头债主

  1. 事物中的某个命令出现错误时只有该命令不能运行,不会影响事物中的其他命令
  2. 这就像Java中除零错误一样,只有在运行时才发现错误

悲观锁/乐观锁/

悲观锁

  1. 顾名思义:悲观锁就是很悲观的,他认为在对数据进行修改的过程中肯定会被别人修改,因此在每次拿数据时都会上锁,这样别人拿数据时只能等待解锁。
  2. 并发性低、安全性高

乐观锁

  1. 乐观锁认为每次拿数据时,被人都不会对数据进行修改,所以不会上锁。但是他会在每条数据上加上一个版本,每次修改都会另版本号加1,只有提交版本大于当前版本才允许提交

watch

  1. 监控一个或多个key,若事物执行之前这个(或这些)key被其他命令所改动,那么事物将被打断
  2. unwatch和exec命令都会取消之前的所有监控
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值