我想使用 MULTI
执行多个带有事务的 redis 命令和 EXEC
,所以我可以DISCARD
如果发生不好的事情。
我正在寻找如何使用 redis 事务的示例 go-redis/redis打包,一无所获。
我还查看了文档 here我没有得到与如何进行 redis 交易相关的任何信息 like this for example使用那个包。或者也许我从文档中遗漏了一些东西,因为是的,你知道 godoc 只解释包中的每个函数,主要使用一个衬里。
即使我找到了一些使用其他 Go Redis 库执行 redis 事务的示例,我也不会修改我的程序以使用另一个库,因为使用另一个库移植整个应用程序的工作量会大得多。
任何人都可以使用 go-redis/redis 包帮助我做到这一点吗?
最佳答案
你得到一个 Tx
使用 Client.Watch
时交易的值(value)
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)
关于go - 如何使用 go-redis/redis 包在 Go 中创建 Redis 事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40999446/