etcd
使用 Txn
提供简单的事务处理,使用这个特性,可以一次性插入多条语句,测试代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41package main import ( "context" "fmt" "go.etcd.io/etcd/clientv3" "log" ) func main() { endpoints := []string{"127.0.0.1:10001", "127.0.0.1:10002", "127.0.0.1:10003"} cli, err := clientv3.New(clientv3.Config{Endpoints: endpoints}) if err != nil { log.Fatal(err) } defer cli.Close() _, err = cli.Txn(context.TODO()).If().Then( clientv3.OpPut("k30", "v30"), clientv3.OpPut("k40", "v40"), ).Commit() if err != nil { log.Fatal(err) } resp, err := cli.Txn(context.TODO()).If().Then( clientv3.OpGet("k30"), clientv3.OpGet("k40"), ).Commit() if err != nil { log.Fatal(err) } for _, rp := range resp.Responses { for _, ev := range rp.GetResponseRange().Kvs { fmt.Printf("%s -> %s, create revision = %dn", string(ev.Key), string(ev.Value), ev.CreateRevision) } } }
程序输出代码如下:
复制代码
1
2
3k30 -> v30, create revision = 13 k40 -> v40, create revision = 13
k30
和k40
的 create revision
都是 13
,表明这两个语句是一次性插入的
最后
以上就是爱笑薯片最近收集整理的关于[etcd] 使用 Txn 一次性插入多个语句的全部内容,更多相关[etcd]内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复