Explorar o código

add client.go

zwde %!s(int64=6) %!d(string=hai) anos
achega
d20116ca89
Modificáronse 1 ficheiros con 65 adicións e 0 borrados
  1. 65 0
      client.go

+ 65 - 0
client.go

@@ -0,0 +1,65 @@
+package etcd_client
+
+import (
+	"context"
+	"go.etcd.io/etcd/clientv3"
+	"time"
+)
+
+var client *clientv3.Client
+
+func New() error {
+	var err error
+	config := clientv3.Config{
+		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) ([]string, error) {
+	var values []string
+	var i int64
+
+	resp, err := client.Get(context.TODO(), key, clientv3.WithPrefix())
+	if err != nil {
+		return values, err
+	}
+
+	for i = 0; i < resp.Count; i++ {
+		values = append(values, string(resp.Kvs[i].Value))
+	}
+
+	return values, 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
+}