go-etcd/etcd是一个Golang的etcd客户端库,可以用于操作etcd服务。下面是一些基本的操作示例:
- 连接etcd
import (
"github.com/coreos/etcd/clientv3"
)
cli, err := clientv3.New(clientv3.Config{
Endpoints: []string{"localhost:2379"}, // etcd服务器地址
DialTimeout: 5 * time.Second,
})
if err != nil {
log.Fatal(err)
}
defer cli.Close() // 关闭连接
- 设置值
_, err = cli.Put(context.Background(), "key", "value")
if err != nil {
log.Fatal(err)
}
- 获取值
resp, err := cli.Get(context.Background(), "key")
if err != nil {
log.Fatal(err)
}
for _, ev := range resp.Kvs {
fmt.Printf("%s : %s\n", ev.Key, ev.Value)
}
- 删除值
_, err = cli.Delete(context.Background(), "key")
if err != nil {
log.Fatal(err)
}
- 监听键变化
rch := cli.Watch(context.Background(), "key")
for wresp := range rch { // 阻塞等待事件通知
for _, ev := range wresp.Events {
fmt.Printf("%s %q : %q\n", ev.Type, ev.Kv.Key, ev.Kv.Value)
}
}
以上示例演示了如何使用go-etcd/etcd包进行基本的操作,更多API和用法可以参考官方文档:https://pkg.go.dev/github.com/coreos/etcd/clientv3




