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就没有用了。