package main import ( "context" "fmt" "go.etcd.io/etcd/clientv3" "time" ) func main() { cli, err := clientv3.New(clientv3.Config{ Endpoints: []string{"127.0.0.1:2379"}, DialTimeout: 5 * time.Second, }) if err != nil { fmt.Println("ETCD出错 :", err) } defer cli.Close() ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) _, err = cli.Put(ctx, "test", "testvalue") if err != nil { fmt.Println("PUT出错:", err) return } fmt.Println("PUT成功") cancel() ctx, cancel = context.WithTimeout(context.Background(), 2*time.Second) get, err := cli.Get(ctx, "test") cancel() if err != nil { fmt.Println("GET出错:", err) return } for _, kv := range get.Kvs { fmt.Printf("key:%s\nvalue:%s\n\n", kv.Key, kv.Value) } res := cli.Watch(context.Background(), "test") for r := range res { for _, ev := range r.Events { fmt.Printf("type:%s\nkey:%s\nvalue:%s\n\n", ev.Type, ev.Kv.Key, ev.Kv.Value) } } }
发表评论