127.0.0.1:6379[3]> multi
OK
127.0.0.1:6379[3]> set b 2
QUEUED
127.0.0.1:6379[3]> get b
QUEUED
127.0.0.1:6379[3]> incr b
QUEUED
127.0.0.1:6379[3]> get b
QUEUED
127.0.0.1:6379[3]> exec
1) OK
2) "2"
3) (integer) 3
4) "3"
127.0.0.1:6379[3]>
放弃事务 (没有新增key,和获取key值)
127.0.0.1:6379[3]> multi
OK
127.0.0.1:6379[3]> set age 1
QUEUED
127.0.0.1:6379[3]> get age
QUEUED
127.0.0.1:6379[3]> discard
OK
127.0.0.1:6379[3]> keys *
1) "a"
2) "b"
127.0.0.1:6379[3]>
事务打断放弃全部操作 (监听一个KEY,开启事务,在事务外部修改KEY,再提交执行事务)
127.0.0.1:6379[3]> watch b
OK
127.0.0.1:6379[3]> multi
OK
127.0.0.1:6379[3]> incr a
QUEUED
127.0.0.1:6379[3]> incr b
QUEUED
127.0.0.1:6379[3]> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379[3]> mget a b
1) "1"
2) "1"
127.0.0.1:6379[3]>
部分成功部分失败 (不保证原子性)
127.0.0.1:6379[3]> multi
OK
127.0.0.1:6379[3]> set name username
QUEUED
127.0.0.1:6379[3]> set sex 1
QUEUED
127.0.0.1:6379[3]> incr name
QUEUED
127.0.0.1:6379[3]> exec
1) OK
2) OK
3) (error) ERR value is not an integer or out of range
127.0.0.1:6379[3]> mget name sex
1) "username"
2) "1"
127.0.0.1:6379[3]>