- package main
- import (
- "go.etcd.io/etcd/clientv3"
- "time"
- "fmt"
- "context"
- )
- func main() {
- var (
- config clientv3.Config
- client *clientv3.Client
- err error
- kv clientv3.KV
- putOp clientv3.Op
- getOp clientv3.Op
- opResp clientv3.OpResponse
- )
- // 客户端配置
- config = clientv3.Config{
- Endpoints: []string{"0.0.0.0:2379"},
- DialTimeout: 5 * time.Second,
- }
- // 建立连接
- if client, err = clientv3.New(config); err != nil {
- fmt.Println(err)
- return
- }
- kv = clientv3.NewKV(client)
- // 创建 Op: operation
- putOp = clientv3.OpPut("/cron/jobs/job8", "123123123")
- // 执行 OP
- if opResp, err = kv.Do(context.TODO(), putOp); err != nil {
- fmt.Println(err)
- return
- }
- // kv.Do(op)
- // kv.Put
- // kv.Get
- // kv.Delete
- fmt.Println("写入 Revision:", opResp.Put().Header.Revision)
- // 创建 Op
- getOp = clientv3.OpGet("/cron/jobs/job8")
- // 执行 OP
- if opResp, err = kv.Do(context.TODO(), getOp); err != nil {
- fmt.Println(err)
- return
- }
- // 打印
- fmt.Println("数据 Revision:", opResp.Get().Kvs[0].ModRevision) // create rev == mod rev
- fmt.Println("数据 value:", string(opResp.Get().Kvs[0].Value))
- }
执行:
[[email protected] etcd]# go run demo9.go
写入 Revision: 42
数据 Revision: 42
数据 value: 123123123
来源: http://www.bubuko.com/infodetail-3030921.html