go语言操作etcd

首先在后台启动etcd

写一段go代码

go 复制代码
package main

import (
	"context"
	"fmt"
	clientv3 "go.etcd.io/etcd/client/v3"
	"time"
)

func main() {
	// 创建客户端,连接etcd
	cli, err := clientv3.New(clientv3.Config{
		Endpoints:   []string{"127.0.0.1:2379"},
		DialTimeout: 5 * time.Second,
	})
	if err != nil {
		fmt.Printf("connect to etcd failed, err:%v\n", err)
		return
	}
	fmt.Println("connect to etcd success")
	defer cli.Close()
	str := `[{"path":"d:/logs/s4.logs","topic":"s4_logs"},{"path":"d:/logs/web.logs","topic":"web_logs"}`
	// put操作
	_, err = cli.Put(context.TODO(), "collect_log_conf", str)
	if err != nil {
		fmt.Printf("put to etcd failed, err:%v\n", err)
		return
	}
	 get操作
	resp, err := cli.Get(context.TODO(), "collect_log_conf") // 获取指定Key的值
	if err != nil {
		fmt.Printf("get to etcd failed")
		return
	}
	for _, ev := range resp.Kvs {
		fmt.Printf("key:%s,value:%s\n", ev.Key, ev.Value)
	}
	 delete 删除key
	//if _,err = cli.Delete(context.TODO(), "testetcd");err != nil{
	//	fmt.Println("delete key failed")
	//}else{
	//	fmt.Println("delete key success")
	//}
}

也可以直接使用ectdctl工具查看key

go 复制代码
etcdctl.exe --endpoints=127.0.0.1:2379 get collect_log_conf
相关推荐
云知谷4 小时前
【经典书籍】《编写可读代码的艺术》精华
开发语言·c++·软件工程·团队开发
空空kkk4 小时前
Java——接口
java·开发语言·python
夜晚中的人海5 小时前
【C++】二分查找算法习题
开发语言·c++·算法
狮子座的男孩6 小时前
js基础:06、函数(创建函数、参数、返回值、return、立即执行函数、对象(函数))和枚举对象的属性
开发语言·前端·javascript·经验分享·函数·枚举对象·立即执行函数
sulikey6 小时前
【C++ STL 深入解析】insert 与 emplace 的区别与联系(以 multimap 为例)
开发语言·c++·stl·stl容器·insert·emplace
墨白曦煜6 小时前
Java集合框架整体分类(完整的集合框架关系)
java·开发语言
YuanlongWang6 小时前
C# 基础——async/await 的实现原理与最佳实践
开发语言·c#
kkkkk0211066 小时前
JavaScript性能优化实战:深度剖析瓶颈与高效解决方案
开发语言·javascript·性能优化
一碗绿豆汤7 小时前
C语言-结构体
c语言·开发语言