Redis事务
快速入门Redis的文章,传送地址:Redis基础知识
1. 介绍
Redis的事务是一个先进先出的队列,将一系列将要执行的指令包装成一个整体,当执行事务时,一次性的将命令按照添加顺序执行,中间不会被干扰或中断。
如果不开启事务,两个客户端操作同一个服务器时就会发生错误,如下图所示:
2. 基本操作
-
开启事务:
multi
- 执行此指令后,后续的指令都会被添加到事务队列中等待执行
- 添加到队列中并不会立即执行,只有执行事务时命令才会被执行
-
执行事务:
exec
- 执行此指令后,事务队列中的任务会被依次执行
- 与
multi
成对使用
-
演示使用
-
取消事务:
discard
- 终止当前事务的定义(发生在exec之前,也就是说还没有执行事务时终止事务)
3. 工作流程
4. 注意事项
4.1 命令语法错误
现象:指令格式书写错误
结果:如果事务中存在语法错误,整个事务都不会执行,包括那些语法正确的指令
4.2 命令执行错误
现象:命令语法正确,但是命令执行失败,比如对list执行incr操作
结果:正确的命令会被执行,运行错误的指令不会执行(错误命令之后的正确指令也会被执行)
注意:已经执行完毕的命令对应的数据不会回滚,需要手动实现回滚