聊一聊Redis事务

本文探讨了Redis事务的必要性、使用方法,包括MULTI、EXEC、DISCARD等指令,以及事务执行出错的处理。尽管Redis事务不支持回滚,但提供了WATCH指令以应对并发更新时的数据一致性。通过案例解析,阐述了CAS乐观锁的概念,帮助理解Redis在事务处理上的特性和限制。

你会了解Redis为什么要提供事务? Redis事务基本指令和使用方法;CAS乐观锁是什么?Redis事务为什么不支持回滚?

没错,Redis也有事务管理,但是功能很简单,在正式开发中也并不推荐使用。但是面试中有可能会问到,所以本文简单谈一谈Redis的事务。

通过这篇文章,你会了解

  • Redis为什么要提供事务?
  • Redis事务基本指令和使用方法
  • CAS乐观锁是什么?
  • Redis事务为什么不支持回滚?

1. 为什么要用事务

我们知道Redis的单个命令是原子性的,比如getsetmgetmset等指令。

在涉及到多个命令的时候,如果需要把多个命令设置为一个不可分割的处理序列,就需要用到事务了。

比如,招财和陀螺各有100元,招财给陀螺转了10元,这时候需要在Redis中把招财的金额总数-10,同时需要把陀螺的金额总数+10。这两个操作要么同时成功,要么同时失败,这时候就需要事务了。

2. 事务的用法

2.1 5个基本指令

Redis提供了以下5个基本指令,先混个眼熟就行,接下来在案例中进行实操,想记不住都难

  • MULTI
  • EXEC
  • DISCARD
  • WATCH
  • UNWATCH
命令 格式 作用 返回值
MULTI MULTI 显式开启Redis事务,后续命令将排队,等候使用EXEC进行原子执行 always OK.
EXEC EXEC 执行事务中的commands队列,恢复连接状态。如果WATCH在之前被调用,只有监测中的Keys没有被修改,命令才会被执行,否则停止执行(详见下文,CAS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值