我是靠谱客的博主 爱笑薯片,最近开发中收集的这篇文章主要介绍[etcd] 使用 Txn 一次性插入多个语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

etcd 使用 Txn 提供简单的事务处理,使用这个特性,可以一次性插入多条语句,测试代码如下:

package 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)
		}
	}
}

程序输出代码如下:

k30 -> v30, create revision = 13
k40 -> v40, create revision = 13

k30k40create revision 都是 13,表明这两个语句是一次性插入的

最后

以上就是爱笑薯片为你收集整理的[etcd] 使用 Txn 一次性插入多个语句的全部内容,希望文章能够帮你解决[etcd] 使用 Txn 一次性插入多个语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部