简介
Redis事务可以一次执行多个命令,且带有两个重要的保证:
1.Redis会将一个事务中的所有命令序列化,然后按照顺序执行
2.执行中不会被其他命令插入,不许出现加塞行为
常用命令
DISCARD:取消事务
EXEC:执行所有命令块内的命令
MULTI:标记一个事务块的开始
UNWATCH:取消WATCH命令对所有key的监视
WATCH key…:监视一个或多个key,如果在事务执行之前这个key被其他命令改动,那么事务将被打断
如果事务中某个指令出现错误,那么错误的指令不会执行,其他指令会被执行 不会回滚
如果指令
incr num2没被执行
如果出现报告型的错误,会回滚
Watch命令
假设一个转账场景:
a账户有100元 ,b账户有3元 a账户向b账户转3元
如果在此事务中 有其他事务修改a账户的值(比如转出50元),那么此时a账户的余额就是负数了
此时应用到watch指令 watch监视a 如果有其他事务修改a的值 那么此次转账事务将被打断