#正常事物
multi
set k1 v1
set k2 v2
exec#依次执行 执行完结束#取消事物
DISCARD
#一旦放弃,所有都不会被执行#错误#1.编译异常#都不会执行
multi
set k1 v1
set k2 v2
getset k3
set k4 v4
exec#2.运行异常#存在语法性错误,其他命令可以进行
multi
set k1 "v1"
incr k1
set k2 v2
get k2
exec
监控
悲观锁
#认为什么时候都会出现问题,无论什么时候都会加锁
乐观锁
#认为什么时候都不会出现问题,所以不会上锁,更新数据的时候去判断,在此期间是否有人修改过数据#获取versionset money 100set out 0watch money #监视对象
multi #事物正常结束,数据期间没有发生变动,这个时候就执行成功
DECRBY money
INCRBY out 20exec#线程一watch money
multi
decrby money 10
incrby out 10#线程2 进行修改set money 1000#线程一exec#出错
unwatch
watch money
multi
decrby money 10
incrby out 10