|
|
@@ -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
|
|
|
+}
|