etcd-v2第三集

简单说下golang的etcd接口例子。etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以。。。

v2: https://github.com/coreos/etcd/tree/master/client

v3: https://github.com/coreos/etcd/tree/master/clientv3

v2 example:


package main import (
"log" "time" "golang.org/x/net/context" "github.com/coreos/etcd/client" ) func main() { cfg := client.Config{ Endpoints: []string{"http://127.0.0.1:2379"}, Transport: client.DefaultTransport, // set timeout per request to fail fast when the target endpoint is unavailable HeaderTimeoutPerRequest: time.Second, } c, err := client.New(cfg) if err != nil { log.Fatal(err) } kapi := client.NewKeysAPI(c) // set "/foo" key with "bar" value log.Print("Setting '/foo' key with 'bar' value") resp, err := kapi.Set(context.Background(), "/foo", "bar", nil) if err != nil { log.Fatal(err) } else { // print common key info log.Printf("Set is done. Metadata is %q ", resp) } // get "/foo" key's value log.Print("Getting '/foo' key value") resp, err = kapi.Get(context.Background(), "/foo", nil) if err != nil { log.Fatal(err) } else { // print common key info log.Printf("Get is done. Metadata is %q ", resp) // print value log.Printf("%q key has %q value ", resp.Node.Key, resp.Node.Value) } }
原文地址:https://www.cnblogs.com/wjx0912/p/6255680.html