标签:
multi
set sniper 1
set //命令语法错误
exec //事务内的所有命令都不会执行
multi
set sniper 1
lpush sniper 3 运行时异常,
set sniper2 3
exec 事务结束时,第一行和第三行命令会执行,第二行执行失败
步骤a、比较,窗口一:
watch sniper
multi
set sniper 3
步骤b、窗口二:set sniper 6
步骤c、窗口一:exec 结束事务
步骤d、窗口一或者窗口二:get sniper,值是6
结论:当watch某个变量时,如果变量处于事务中发生变化但是事务又没有结束,此时,该变量在事务外的其它地方发生变化,那么,事务内的变量改变将不起作用。
watch命令
作用:监控一个或者多个键,当被监控的键值被修改后阻止之后的一个事务的执行。
但是不能保证其它客户端不修改这一键值,所以我们需要在事务执行失败后重新执行事务中的命令。
注意:执行完事务的exec命令之后,watch就会取消对所有键值的监控
unwatch:取消监控
标签:
原文地址:http://my.oschina.net/sniperLi/blog/495331