事务就是保证命令组合原子性的一种机制,
一组命令,要么全部执行,要么全部不执行.
Reids的事务没有回滚功能,一旦开始执行,就必定都会执行,判断不能执行事务的依据是没有语法错误,并且关注的键值没有发生变化
命令
两个命令中间的命令会按照顺序执行
multi
开始事务exec
结束事务discard
终止事务(所有命令都不执行)watch $key
在开始事务前关注指定的$key
,保证在执行事务过程中$key
的内容没有发生变化,否则事务执行失败
事务出错的处理方式
- 编写命令时错误(命令拼写错误)
整个事务失败,所有命令无法执行 - 运行时错误(将A命令写成了B命令,但语法正确(即使运行时报错也不会回滚))
整个事务运行成功,并不会发生回滚,需要手动修复