zoukankan      html  css  js  c++  java
  • Redis事务

    1.MySQL事务

    #成功的事务
    begin;
    sql1;
    sql2;
    ...
    commit;
    
    #失败的事务
    begin;
    sql1;
    sql2;
    ...
    rollback;
    

    2.redis事务命令

    #1.开启事务
    MULTI
    
    #2.结束事务(执行所有事务块内的命令)
    EXEC
    
    #3.取消事务(放弃执行事务块内的所有命令)
    DISCARD
    
    #4.监视一个(或多个) key,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
    WATCH
    
    #5.取消监控
    UNWATCH
    

    3.事务的示例

    #使用事务执行
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set k100 v100
    QUEUED
    127.0.0.1:6379> set k200 v200
    QUEUED
    127.0.0.1:6379> get k200
    QUEUED
    127.0.0.1:6379> EXEC
    1) OK
    2) OK
    3) "v200"
    
    #事务取消
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set k1 v1
    QUEUED
    127.0.0.1:6379> set k2 v2
    QUEUED
    127.0.0.1:6379> get k1
    QUEUED
    127.0.0.1:6379> DISCARD
    OK
    127.0.0.1:6379> keys *
    (empty list or set)
    
    #监控一个key
    127.0.0.1:6379> WATCH k1
    OK
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> set k1 v1000000
    QUEUED
    
    #另一个窗口修改k1
    127.0.0.1:6379> set k1 00000
    OK
    
    #回到第一个窗口提交事务
    127.0.0.1:6379> EXEC
    (nil)
    127.0.0.1:6379> get k1
    "00000"
    

    4.注意

    1.redis只支持乐观锁
    2.事务在不使用watch监控时,谁后提交谁为准
    3.事务在使用watch监控时,谁先提交谁为准
    4.watch只监控一次事务并且是当前连接的事务
    
  • 相关阅读:
    项目打包文件build.xml
    【转】常见面试之机器学习算法思想简单梳理
    【转】11位机器学习大牛最爱算法全解
    Simplify Path
    Text Justification
    Valid Number
    Substring with Concatenation of All Words
    Shortest Palindrome
    Palindrome Pairs
    Decode Ways
  • 原文地址:https://www.cnblogs.com/Applogize/p/13449097.html
Copyright © 2011-2022 走看看