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中事务的区别

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

你可能感兴趣的:(redis)