你会了解Redis为什么要提供事务? Redis事务基本指令和使用方法;CAS乐观锁是什么?Redis事务为什么不支持回滚?
没错,Redis也有事务管理,但是功能很简单,在正式开发中也并不推荐使用。但是面试中有可能会问到,所以本文简单谈一谈Redis的事务。
通过这篇文章,你会了解
- Redis为什么要提供事务?
- Redis事务基本指令和使用方法
- CAS乐观锁是什么?
- Redis事务为什么不支持回滚?
1. 为什么要用事务
我们知道Redis的单个命令是原子性的,比如get、set、mget、mset等指令。
在涉及到多个命令的时候,如果需要把多个命令设置为一个不可分割的处理序列,就需要用到事务了。
比如,招财和陀螺各有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 |

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

被折叠的 条评论
为什么被折叠?



