1)multi命令前通过watch命令监听key;
2)执行multi命令;
3)命令列表;
4)exec命令提交事务/discard命令回滚;
1)redis维护着一个全局的watch_keys,也是一个
2)当执行exec命令的时候,会执行事务队列里的每一条命令,执行写命令的时候,会检查当前key是否存在于watch_keys里,如果存在,会检查两个的版本号是否相等,相等则执行这条写命令,不相等则不返回任何信息,然后删除watch_keys里对应的key;

1)multi命令前通过watch命令监听key;
2)执行multi命令;
3)命令列表;
4)exec命令提交事务/discard命令回滚;
1)redis维护着一个全局的watch_keys,也是一个
2)当执行exec命令的时候,会执行事务队列里的每一条命令,执行写命令的时候,会检查当前key是否存在于watch_keys里,如果存在,会检查两个的版本号是否相等,相等则执行这条写命令,不相等则不返回任何信息,然后删除watch_keys里对应的key;