1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package etcd_client
- import (
- "context"
- "go.etcd.io/etcd/clientv3"
- "time"
- )
- var client *clientv3.Client
- func NewEtcdClient(endpoints []string) error {
- var err error
- config := clientv3.Config{
- Endpoints: endpoints,
- //Endpoints: []string{"47.106.183.209:31379"},
- //Endpoints: []string{"10.43.152.46:2379"},
- DialTimeout: 5 * time.Second,
- }
- if client, err = clientv3.New(config); err != nil {
- return err
- }
- return nil
- }
- func Get(key string) (string, error) {
- resp, err := client.Get(context.TODO(), key)
- if err != nil {
- return "", err
- }
- if resp.Count == 0 {
- return "", nil
- }
- return string(resp.Kvs[0].Value), nil
- }
- func GetWithPrefix(key string) (map[string]string, error) {
- result := make(map[string]string, 0)
- resp, err := client.Get(context.TODO(), key, clientv3.WithPrefix())
- if err != nil {
- return result, err
- }
- for i := int64(0); i < resp.Count; i++ {
- result[string(resp.Kvs[i].Key)] = string(resp.Kvs[i].Value)
- }
- return result, nil
- }
- func Put(key, val string) error {
- _, err := client.Put(context.TODO(), key, val)
- return err
- }
- func Delete(key string) error {
- _, err := client.Delete(context.TODO(), key)
- return err
- }
- func DeleteWithPrefix(key string) error {
- _, err := client.Delete(context.TODO(), key, clientv3.WithPrefix())
- return err
- }
|