从零开始学习etcd的使用

imooc慕课账号出售,里面包含小程序开发,安卓,,Python,linux,前端,测试等等……毕业转让,需要可联系;加W:Jukunlong

etcd做注册服务使用 类似java生态的zookeeper,最近在学学习

1、下载etcd包

//直接下载即可(因为包比较大有翻墙,可以直接去 https://golangtc.com/download/package 下载)
go get  go.etcd.io/etcd/clientv3

2、使用记录

packge main

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

func main() {
  var (
		config clientv3.Config
		client *clientv3.Client
		err error
		kv clientv3.KV
		putResp *clientv3.PutResponse
		getResp *clientv3.GetResponse
		delResp *clientv3.DeleteResponse
		keepResp *clientv3.LeaseKeepAliveResponse
		keepRespChan <-chan *clientv3.LeaseKeepAliveResponse
	)
}
//客户端配置
config = clientv3.Config{
	Endpoints:[]string{"127.0.0.1:2379"},
	DialTimeout:5 * time.Second,
}
	//建立连接
if client,err = clientv3.New(config);err != nil {
	fmt.Println(err)
	return
}
//得到操作etcd键值对的kv
kv = clientv3.NewKV(client)

//写入etcd
if putResp,err = kv.Put(context.TODO(),"/cron/jobs/job2","....",clientv3.WithPrevKV()/*可选参数,得到上次操作的值*/);err != nil {
	fmt.Println(err)
} else {
	fmt.Println(putResp.Header.Revision)

	if putResp.PrevKv != nil {
		fmt.Println(string(putResp.PrevKv.Value))
	}
}
//读取某个key的value值
getResp,err = kv.Get(context.TODO(),"/cron/jobs/job1"/*,clientv3.WithCountOnly()可选参数,得到数量*/)
	if err != nil {
		fmt.Println(err)
		return
	} else {
		fmt.Println(getResp.Kvs[0].Value/*得到的是一个切片*/)
	}
//读取前缀为XXX的所有的key的value(需要加上参数clientv3.WithPrefix())
if getResp,err = kv.Get(context.TODO(),"/cron/jobs/",clientv3.WithPrefix());err != nil {
		fmt.Println(err)
		return
	} else {
		fmt.Println(getResp.Kvs)
	}
//删除操作
if delResp,err = kv.Delete(context.TODO(),"/cron/jobs/job2",clientv3.WithPrevKV()/*得到删除之前的值*/);err != nil {
		fmt.Println(err)
		return
	} else {
		if len(delResp.PrevKvs) != 0 {
			fmt.Println(delResp.PrevKvs)
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值