首页 > 代码库 > redis ruby客户端学习(五)

redis ruby客户端学习(五)

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

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

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

require Redisr = Redis.newr.set a, 1r.set b, 2r.multir.set a, 3r.set b, 6r.exec#r.get ‘a‘#=> "3"#r.get ‘b‘# => "6"  

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

require Redisr = Redis.newr.set a, 1r.set b, 2r.multir.set a, 3r.set b, 6r.discard#r.get ‘a‘#=> "1"#r.get ‘b‘# => "2"  

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

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

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

require Redisr1 = Redis.newr1.set a, 1r1.set b, 2r1.multir1.set a, 3r1.set b, 6#r2中改变a的值后,执行execr1.exec#r1.get ‘a‘#=> "1"#r1.get ‘b‘# => "2"  
require Redisr = Redis.newr.set a, 100

4,unwatch:

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

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

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

redis ruby客户端学习(五)