zoukankan      html  css  js  c++  java
  • redis ruby客户端学习(五)

    一,redis是支持事务的,请看这篇介绍

    下面介绍几个ruby实现的命令,multi,exec,discard,watch,unwatch。

    1,multi:标记一个事务块开始,exec:执行所有 MULTI 之后发的命令

    require 'Redis'
    r = Redis.new
    r.set 'a', 1
    r.set 'b', 2
    
    r.multi
    r.set 'a', 3
    r.set 'b', 6
    r.exec
    
    #r.get 'a'
    #=> "3"
    #r.get 'b'
    # => "6"  

    2,discard:丢弃所有 MULTI 之后发的命令

    require 'Redis'
    r = Redis.new
    r.set 'a', 1
    r.set 'b', 2
    
    r.multi
    r.set 'a', 3
    r.set 'b', 6
    r.discard
    #r.get 'a'
    #=> "1"
    #r.get 'b'
    # => "2"  

    3,watch:锁定key直到执行了 MULTI/EXEC 命令

    watch会检查时给定的key,如果从开始watch的时候,到执行exec的时候。所监视的key发生了变化,整个事务就会失败。

    假设两个redis链接分别为r1和r2。

    require 'Redis'
    r1 = Redis.new
    r1.set 'a', 1
    r1.set 'b', 2
    
    r1.multi
    r1.set 'a', 3
    r1.set 'b', 6
    #r2中改变a的值后,执行exec
    r1.exec
    #r1.get 'a'
    #=> "1"
    #r1.get 'b'
    # => "2"  
    require 'Redis'
    r = Redis.new
    r.set 'a', 100

    4,unwatch:

    刷新一个事务中已被监视的所有key。重新开始watch

    redis中事务和mysql中事务的区别

    事务中出现错误时,整个事务中的操作是不会回滚的

  • 相关阅读:
    HierarchicalDataTemplate
    Prism技巧
    常用Exception
    netcore URL重新路径
    Nintendo Switch相册整理
    交换变量-不借助任何变量
    QCombobox样式stylesheet总结
    Qt新旧Moc方式升级功能
    QSS使用方法总结
    【QRegExp】QLineEdit屏蔽空格
  • 原文地址:https://www.cnblogs.com/fanxiaopeng/p/4216692.html
Copyright © 2011-2022 走看看