本次测试使用的redis版本是5.0.5,如下:

redisshiwu redis事务不支持回滚_redis

错误情况一:语法错误,命令不存在或者命令参数的个数不对

操作示例:

redisshiwu redis事务不支持回滚_运行错误_02


可以发现出现了语法错误后,直接就返回错误了,所有的命令都不会被执行,所以key的value值还是helloworld。

错误情况二:运行错误,命令执行时出现的错误,在实际执行前,Redis是发现不了这个错误的。

操作示例:

redisshiwu redis事务不支持回滚_运行错误_03


可以发现即使事务里的一条命令出现了运行错误,但是事务里其他的命令包括出错命令之后的命令都会被执行,因此key的value值被改为666666。

总结

对于语法错误,在开发时就能发现了,而运行错误,即使有命令出现错误,正确的命令还是会被执行,事务并不会回滚。