redis事务

我与影子孤独终老i 提交于 2020-03-05 23:36:27

redis事务命令

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

4种结果

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

小结

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

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!