redis事务

  • redis执行事务
  • redis取消事务
  • redis异常
  • 编译型异常
  • 运行时异常



redis其实是没有原子性、隔离性之说的。单条命令是原子性,多条命令不一定是原子性

redis执行事务

redis incr原子性 redis incr是原子性吗_redis


multi开启一个事务,执行命令,exec提交事务

redis取消事务

redis incr原子性 redis incr是原子性吗_字符串_02


multi开启的事务中执行的命令,如果执行discard,当前事务中所有执行命令无效

redis异常

编译型异常

编译型异常属于代码问题,或者redis命令不正确,事务中所有命令不会被执行

redis incr原子性 redis incr是原子性吗_redis_03


addset,redis没有对应命令,但不影响同事务下面命令执行。当我们输入exec时,报错,所有命令没有被执行。

运行时异常

运行时异常,属于我们代码业务逻辑错误,就像java的1/0一样,编译时不报错,运行时报错。

redis incr原子性 redis incr是原子性吗_运行时异常_04


k1的值为v1,是个字符串值。incr k1 只能对integer值+1,在事务中没有报错,继续执行其他命令。当我们exec执行事务时,我们发现incr命令报错,但不影响其他命令的执行。