Redis事务处理(二)

2015-02-02 13:37:38 · 作者: · 浏览: 41
result = tx.exec();? ? ? ? ? //运行时在这边打断点,然后通过命令行改变foo的值
if (result == null || result.isEmpty()) {
? ? System. err.println( "Transaction error...");
? ? return;
}
for (Object rt : result) {
? ? System. out.println(rt.toString());
}


如果在WATCH 执行之后,EXEC 执行之前,有其他客户端修改了 mykey 的值,那么当前客户端的事务就会失败。程序需要做的,就是不断重试这个操作,直到没有发生碰撞为止。
这种形式的锁被称作乐观锁,它是一种非常强大的锁机制。并且因为大多数情况下,不同的客户端会访问不同的键,碰撞的情况一般都很少,所以通常并不需要进行重试。