Redis 事务

redis事务是一个单独的原子操作,事务中所有的命令都会序列化,按顺序执行,在事务执行的过程中 不会被其他客户端发来的操作插队或中断。但事务中语句执行失败也不会回滚(会略过失败语句,继续执行下一句)。(未提交阶段报错则无法提交,需要重写。)

multi 开始事务

exec 提交事务

discard 取消未提交的事务

watch 可以为Redis事务提供 check-and-set (CAS)行为。被WATCH的键会被监视,并会发觉这些键是否被改动过了。 如果有至少一个被监视的键在 EXEC 执行之前被修改了, 那么下个事务都会被取消, EXEC 返回nil-reply来表示事务已经失败。

  WATCH mykey
  val = GET mykey
  val = val + 1
  MULTI
  SET mykey $val
  EXEC

 unwatch 取消watch命令对所有key的监视。

如果watch后 exec 或者 discard先被执行,unwatch就没有用了。

posted @ 2019-04-09 13:08  茶饭不撕  阅读(201)  评论(0编辑  收藏  举报