redis事务

redis事务命令

MULTI	开启事务的标识
DISCARD   主动放弃
EXEC 	执行事务(EXEC命令执行后所有的监视锁都会自动取消)
WATCH	监视一个或多个key,监视的key在EXEC提交时会检测key的值是否发生了改变,如果改变了就会导致事务失败,返回Nullmulti-bulk以通知调用者事务失败。类似于乐观锁。
UNWATCH 取消对所有key的监视

4种结果

  • 全体连坐(输入命令时就报错,比如redis的命令错误、参数个数错误、cmd下直接会出错误信息,会导致本次事务失败)
  • 冤头债主(QUEUED成功,事务EXEC后 失败的失败,成功的成功,互不影响)
  • 正常执行
  • 放弃事务

小结

redis部分支持事务,不像ORCALE和MYSQL一样强硬要求。

单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行,事务在执行过程中,不会被其他客户端所发来的命令打断。

没有隔离级别的概念:队列中的命令在没有提交之前都不会被实际的执行,因为事务提交前任何操作都不会被执行。

不保证原子性:redis同一个事务如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。

posted @ 2020-03-05 23:07  GhostAnt  阅读(83)  评论(0编辑  收藏  举报