Redis事务操作

文章目录

    • 1. Redis事务常见命令
    • 2. 具体案例

1. Redis事务常见命令

名称 描述
DISCARD 取消事务,放弃执行事务块内的所有命令
EXEC 执行所有事务块内的命令
MULTI 表示一个事务块的开始
UNWATCH 取消WATCH命令对所有keyd监控
WATCH eye [key…] 监视一个或多个kye,如果在事务执行之前(或这些)key被其它命令所改的,那么事务将会被打断

2. 具体案例

redis会将一次事务的所有命令放在一个队列中,一次性

redis没个命令都是原子的,如果多个命令组合到一起想要一起执行就需要事务了。

  • 案例一:开启一个事务

在这里插入图片描述

  • 案例二:放弃一个事务

Redis事务操作_第1张图片

  • 全体连坐

如果事务中一个命令有错误,整个事务失败

Redis事务操作_第2张图片

  • 冤有头债有主

针对运行以后的异常,错误的命令执行失败,成功的就执行成功,因为与传统的数据库事务不一样,redis是不支持回滚的

Redis事务操作_第3张图片

  • watch监控

Redis使用watch来提供乐观锁定,类似于CAS

乐观锁:每次去拿谁的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断胰腺癌在此期间有没有去更新这个数据。(乐观锁策略:提交版本必须大于记录当前的版本才能更新)
悲观锁:每次去拿数据的时候都认为别人会修改,所以每次拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁

Redis事务操作_第4张图片
Redis事务操作_第5张图片
因为第二个客户端在事务还没有执行完之前就修改类balance的数据,导致balance的版本升高,所以事务就会失效,UNWATCH就可以放弃监控(放弃加锁)

你可能感兴趣的:(重温Redis,redis,数据库,mybatis)