美文网首页
go etcd 基础操作

go etcd 基础操作

作者: 莫夏_b560 | 来源:发表于2019-01-08 10:50 被阅读0次
package main

import (
    "log"
    "time"
    "go.etcd.io/etcd/clientv3"
    "context"
    "fmt"
)

func conn() {
    cli, err := clientv3.New(clientv3.Config{
        Endpoints:   []string{"localhost:2379", "localhost:2380"},
        DialTimeout: 5 * time.Second,
    })
    if err != nil {
        log.Println(err.Error())
    }
    defer cli.Close()
    fmt.Println("conn success")

    //设置超时及设置值
    ctx, cancelFunc := context.WithTimeout(context.Background(), 5*time.Second)
    _, err = cli.Put(ctx, "name", "Jaye")
    cancelFunc()
    if err != nil {
        log.Println("cli.Put", err.Error())
    }

    //取值
    ctx, cancelFunc = context.WithTimeout(context.Background(), 5*time.Second)
    res, err := cli.Get(ctx, "name")
    if err != nil {
        log.Println("cli.Get", err.Error())
    }

    for k, v := range res.Kvs {
        fmt.Println("查询结果", k, string(v.Key), string(v.Value))
    }
}

func watch() {
    cli, err := clientv3.New(clientv3.Config{
        Endpoints:   []string{"localhost:2379","localhost:2380"},
        DialTimeout: 5 * time.Second,
    })
    if err != nil {
        log.Println(err.Error())
    }
    defer cli.Close()
    fmt.Println("conn success")

    //设置超时及设置值
    ctx, cancelFunc := context.WithTimeout(context.Background(), 10*time.Second)
    _, err = cli.Put(ctx, "home", "厦门")
    cancelFunc()
    if err != nil {
        log.Println("cli.Put", err.Error())
    }

    //watch
    for {
        rch := cli.Watch(context.Background(), "home")
        for resp := range rch {
            for k, v := range resp.Events {
                fmt.Println(k, v.Type, string(v.Kv.Key), string(v.Kv.Value))
            }
        }
    }
}

func main() {
    //conn()
    watch()
}

相关文章

  • go etcd 基础操作

  • Go操作etcd

    go操作etcd etcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现...

  • Etcd

    Etcd leader选举 解决依赖问题 问题go get go.etcd.io/etcd/clientv3时出错...

  • fabric make error etcd: does not

    replace this : go.etcd.io/etcd v3.3.20+incompatible to : ...

  • Etcd权限配置

    目录 Etcd Auth Client Etcd 关于go环境搭建可以参考Go起步 Auth 添加用户root后默...

  • etcd

    go操作etcd etcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现...

  • golang etcd clientv3踩坑,rpc error

    golang使用etcd,使用的库为:github.com/coreos/etcd/clientv3或者go.et...

  • 一次etcd踩坑记

    最近项目中部分服务迁移到go,为了方便监控服务,采用了etcd。启动go服务的时候,去etcd获取一个租约,然后每...

  • go语言学习一

    go 几乎可以断定,go语言是最有前途的语言,请看: Docker Kubernetes consul etcd ...

  • 常见错误

    go + etcd :there is no connection available 服务节点下线,即使调用方在...

网友评论

      本文标题:go etcd 基础操作

      本文链接:https://www.haomeiwen.com/subject/kylvrqtx.html