# 开始事务 127.0.0.1:6379> MULTI OK # 命令入队 127.0.0.1:6379> SET a 1 QUEUED 127.0.0.1:6379> INCR a QUEUED # 执行事务 127.0.0.1:6379> EXEC 1) OK 2) (integer) 2 # 最终 a 的值为 2
2. 语法错误导致事务失败
1 2 3 4 5 6 7 8 9
127.0.0.1:6379> MULTI OK 127.0.0.1:6379> SET b 2 QUEUED 127.0.0.1:6379> INCR # 语法错误(缺少键) (error) ERR wrong number of arguments for 'incr' command
127.0.0.1:6379> EXEC # 整个事务被拒绝 (error) EXECABORT Transaction discarded because of previous errors.
3. 运行时错误不影响其他命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
127.0.0.1:6379> SET c "abc" # 字符串值 OK
127.0.0.1:6379> MULTI OK 127.0.0.1:6379> INCR c # 运行时错误(对字符串自增) QUEUED 127.0.0.1:6379> SET d 4 QUEUED
127.0.0.1:6379> EXEC 1) (error) ERR value is not an integer or out of range # 错误命令 2) OK # 其他命令正常执行 127.0.0.1:6379> GET d # d 成功设置 "4"