2016-12-06 46 views
3

我想执行多个Redis的使用MULTIEXEC交易条命令,所以如果有什么不好的事情发生,我可以DISCARD它。如何使用中间人的Redis/redis的包创建围棋Redis的交易?

我一直在寻找如何使用 go-redis/redis包进行Redis交易的例子,并且什么也没找到。

我也看看文档here和我没有任何关系如何使用该软件包做redis交易like this for example。或者也许我从文档中遗漏了一些东西,因为是的,你知道godoc只是解释封装中的每个函数,大多使用一个班轮。

即使我发现了一些例如使用其他围棋Redis的图书馆,我不会改变我的程序中使用另一个库以来的努力将是使用第三方库端口整个应用程序大得多做Redis的交易。

谁能帮我做,使用中间人的Redis/Redis的包?

在此先感谢。

+0

交易在该包是调用[TX](https://godoc.org/gopkg.in/redis.v5#Tx) – JimB

+0

我知道。但如何创建tx对象? 我没有找到返回TX – Kebeng

回答

1

你得到一个Tx值事务时使用Client.Watch

err := client.Watch(func(tx *redis.Tx) error { 
    n, err := tx.Get(key).Int64() 
    if err != nil && err != redis.Nil { 
     return err 
    } 

    _, err = tx.Pipelined(func(pipe *redis.Pipeline) error { 
     pipe.Set(key, strconv.FormatInt(n+1, 10), 0) 
     return nil 
    }) 
    return err 
}, key) 
+0

哇,我没有看到,在文档的任何功能。 ,Tx是在里面'Watch'功能匿名函数设置了一个param。这就是为什么我想念它。 谢谢你。 – Kebeng