redis总结4


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:取消监控


你可能感兴趣的:(redis总结4)