美文网首页
redis的事务

redis的事务

作者: 码畜翻身 | 来源:发表于2018-09-27 11:43 被阅读0次

    事务的原子性的解析

    1.进队列之前redis已经识别错误了,会保持原子性

    127.0.0.1:6379> get a
    "100"
    127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> incrby a 10
    QUEUED
    127.0.0.1:6379> sda
    (error) ERR unknown command 'sda'
    127.0.0.1:6379> exec
    (error) EXECABORT Transaction discarded because of previous errors.
    127.0.0.1:6379> get a
    "100"
    

    2.进队列之前redis不能识别错误,会保持原子性(需要开发者规避)

    127.0.0.1:6379> get a
    "100"
    127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> incrby a 10 
    QUEUED
    127.0.0.1:6379> sadd a "sss"
    QUEUED
    127.0.0.1:6379> exec
    1) (integer) 110
    2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
    127.0.0.1:6379> get a
    "110"
    

    3.watch加乐观锁(别的进程对key进行改变)

    127.0.0.1:6379> get a
    "100"
    127.0.0.1:6379> watch a 
    OK
    127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> incrby a 10 
    QUEUED
    127.0.0.1:6379> exec
    (nil)
    
    

    4.取消事务discard
    直接取消队列

    相关文章

      网友评论

          本文标题:redis的事务

          本文链接:https://www.haomeiwen.com/subject/pqceoftx.html