Browse Source

增加配置

John Doe 4 tháng trước cách đây
mục cha
commit
e02a127f5a
3 tập tin đã thay đổi với 90 bổ sung1 xóa
  1. 2 1
      README.md
  2. 54 0
      config/redis.go
  3. 34 0
      config/redis_test.go

+ 2 - 1
README.md

@@ -1 +1,2 @@
-s
+## 功能
+1. 增加使用redis作为统一配置功能

+ 54 - 0
config/redis.go

@@ -0,0 +1,54 @@
+package config
+
+import (
+	"context"
+	"fmt"
+
+	"github.com/sirupsen/logrus"
+	"gogs.daxia.dev/huanan/pkg.daxia.dev.git/parse"
+	"gogs.daxia.dev/huanan/pkg.daxia.dev.git/rdb"
+)
+
+func GetString(key string, defaultVal string) string {
+	data, err := rdb.GetRDB().Get(context.Background(), key).Result()
+	if err != nil {
+		logrus.Error(err)
+		return defaultVal
+	}
+
+	return data
+}
+
+func GetInt(key string, defaultVal int) int {
+	data, err := rdb.GetRDB().Get(context.Background(), key).Result()
+	if err != nil {
+		logrus.Error(err)
+		return defaultVal
+	}
+
+	return parse.StringToInt(data)
+}
+
+func GetInt64(key string, defaultVal int64) int64 {
+	data, err := rdb.GetRDB().Get(context.Background(), key).Result()
+	if err != nil {
+		logrus.Error(err)
+		return defaultVal
+	}
+
+	return parse.StringToInt64(data)
+}
+
+func SetInt(key string, val int) error {
+	return SetString(key, fmt.Sprintf("%d", val))
+}
+
+func SetString(key string, val string) error {
+	_, err := rdb.GetRDB().Set(context.Background(), key, val, 0).Result()
+	if err != nil {
+		logrus.Error(err)
+		return err
+	}
+
+	return nil
+}

+ 34 - 0
config/redis_test.go

@@ -0,0 +1,34 @@
+package config
+
+import (
+	"testing"
+
+	"github.com/spf13/viper"
+	"gogs.daxia.dev/huanan/pkg.daxia.dev.git/rdb"
+)
+
+func TestConfig(t *testing.T) {
+	viper.Set("rdb.addr", "localhost:6379")
+	viper.Set("rdb.password", "")
+	viper.Set("rdb.db", "1")
+	viper.Set("rdb.pool_size", "100")
+
+	err := rdb.InitClient()
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	//
+	SetString("test_data1", "test")
+
+	data := GetString("test_data1", "empty")
+	if data != "test" {
+		t.Fatal(`data != "test"`)
+	}
+
+	SetInt("test_data2", 1)
+	intData := GetInt("test_data2", -1)
+	if intData != 1 {
+		t.Fatal(`intData != 1`)
+	}
+}