Redis中的事务
参考
参考博客:https://blog.csdn.net/jiayi_yao/article/details/124689937
菜鸟教程:https://www.runoob.com/redis/redis-transactions.html
参考博客:https://blog.csdn.net/weixin_46156200/article/details/121043694?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-121043694-blog-124689937.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-121043694-blog-124689937.pc_relevant_aa&utm_relevant_index=1
参考书籍:《Redis设计与实现》
Redis事务基本概念
Redis的事务是什么?
Redis事务是指将多条命令加入队列,一次批量执行多条命令,每条命令会按顺序执行,事务执行过程中不会受客户端传入的命令请求影响。
一个事务从开始到执行会经历以下三个阶段:
- 第一阶段:开始事务(其实就是修改Redis客户端中关于事务状态的flag)
- 第二阶段:命令入队(事务状态下,非WATCH、EXEC、DISCARD、MULTI都不会执行,而是加入事务队列)
- 第三阶段、执行事务。(给出EXEC指令)
EXEC:创建回复队列,依次遍历事务队列,取得结果放入回复队列,执行完毕后,清空事务队列,修改Redis客户端状态为非事务状态(非事务状态,接到命令就会立即执行),然后将回复队列返回给前端
- 第三阶段、执行事务。<