redis事务及锁应用

1、redis 支持简单的事务(不支持回滚

2、redis 与 MySQL对比:

        MySQL               redis
开启    start transaction   mutil
语句    普通sql             普通命令
失败    Rollback回滚        Discard 取消
成功    Commit                exec

注:rollback 域 discard 的区别
如果已经成功执行了2条语句,第3条语句出错
rollback后,前2条的语句影响消失
Discard 只是本次事务,前2条语句造成的影响仍然在

在mutil后面的语句中,语句出错可能有2种情况
1、语句就有问题:这种,Exec时报错,所有语句得不到执行
2、语句本身没错,但适用对象有问题,比如zadd 操作link对象
exec之后,会执行正确的语句,并跳过不适当的语句

set wang 200
set zhao 700
multi 
decrby zhao 100
incrby wang 100
exec 
抢票{
    set wang 300
    set lisi 300
    set ticket 1
wang:
    watch ticket    #watch 可以监听多个key当其中一个key有变化,就会取消事务  取消 unwatch 
    multi 
    decr ticket 
    decrby wang 100
    exec 
lisi:在王之前把票买走了。    

results matching ""

    No results matching ""