作者回复: 对的,单线程不一定代表要执行的事务的条件都满足,因为其他客户端的命令可能会在WATCH之后修改了KEY的值(如文中例子),导致事务条件不满足,打断事务执行的情况。
作者回复: 对的,客户端2 即使SET ticket的数值没有变化,也是对ticket进行了“修改”,也就是数据的版本发生了变化,因此和文章中的例子一样,客户端2会返回OK,客户端1是 nil
作者回复: 可以的,使用DECR 可以实现原子性的递减
作者回复: Good Job
作者回复: 嗯 Docker很方便
作者回复: 对的
作者回复: 对 串行化的,所以同一时刻也会进行串行化的处理,比如顺序为:客户端1 watch -> 客户端2 watch,或者是 客户端2 watch -> 客户端1watch,都有可能。