Redis的事务

522 阅读1分钟

Redis支持分布式环境下的事务操作,其事务可以一次执行多个命令,事务中的所有命令都会序列化地顺序执行。事务在执行过程中,不会被其他客户端发送来的命令请求打断。服务器在执行完事务中的所有命令之后,才会继续处理其他客户端的其他命令。Redis的事务操作分为开启事务、命令入队列、执行事务三个阶段。Redis的事务执行流程如下:如图所示。

image.png

  • 事务开启:客户端执行Multi命令开启事务
  • 提交请求:客户端提交命令到事务
  • 任务入队列:Redis将客户端请求放入事务队列中等待执行。
  • 入队状态反馈:服务器返回QURUD,表示命令已被放入事务队列
  • 执行命令:客户端通过Exec执行事务
  • 事务执行错误:在Redis事务中如果某条命令执行错误,则其他命令会继续执行,不会回滚。可以通过Watch监控事务执行的状态并处理命令执行错误的异常情况。
  • 执行结果反馈:服务器向客户端返回事务执行的结果。

Redis事务的相关命令有:Multi、Exec、Discard、Watch和unWatch,如下图:

image.png