-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmain.go
46 lines (40 loc) · 1.21 KB
/
main.go
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
41
42
43
44
45
46
package main
import (
"context"
"fmt"
"github.com/Danny5487401/go_package_example/22_etcd/conn"
// 注意是这,不是github.com/coreos/etcd v3.3.17+incompatible
"go.etcd.io/etcd/client/v3"
"time"
)
// 与grpc版本冲突
func main() {
// 创建连接客户端
var cli *clientv3.Client
var err error
cli, err = conn.GetClient()
if err != nil {
return
}
// put 操作
//ctx, cancel := context.WithTimeout(context.Background(), time.Second)
//rsp, err := cli.Put(ctx, "etcd_danny_key", "etcd_value")
//cancel()
//if err != nil {
// fmt.Printf("[put etcd ] failed:%v\n", err)
//}
//fmt.Printf("[put etcd ] success,rsp :%v\n", rsp)
// get 操作
ctx2, cancel := context.WithTimeout(context.Background(), time.Second*3) // 注意超时时间
//resp,err := cli.Get(ctx2,"etcd_danny_key", clientv3.WithPrefix() ) // clientv3.WithPrefix() 业务前缀
resp, err := cli.Get(ctx2, "name")
cancel()
if err != nil {
fmt.Printf("[get value] failed:%v\n", err)
return
}
fmt.Println("[get value] success")
for _, ev := range resp.Kvs {
fmt.Printf("键值对是%s:%s,创建版本%v,修改的次数%v,最后一次修改时版本%v\n", ev.Key, ev.Value, ev.CreateRevision, ev.Version, ev.ModRevision)
}
}