diff --git a/go.mod b/go.mod index d09f8e7..5ae49f3 100644 --- a/go.mod +++ b/go.mod @@ -15,9 +15,12 @@ require ( require ( github.com/andybalholm/brotli v1.0.5 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/go-ini/ini v1.67.0 // indirect + github.com/go-redis/redis/v8 v8.11.5 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/golang/snappy v0.0.1 // indirect github.com/google/uuid v1.6.0 // indirect diff --git a/go.sum b/go.sum index a8cfb8d..8bcbff6 100644 --- a/go.sum +++ b/go.sum @@ -2,15 +2,21 @@ gitea.pena/PenaSide/hlog v0.0.0-20241125221102-a54c29c002a9 h1:tBkXWNIt8icmkMMnq gitea.pena/PenaSide/hlog v0.0.0-20241125221102-a54c29c002a9/go.mod h1:sanhSL8aEsfcq21P+eItYiAnKAre+B67nGJmDfk2cf0= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= +github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gofiber/fiber/v2 v2.51.0 h1:JNACcZy5e2tGApWB2QrRpenTWn0fq0hkFm6k0C86gKQ= diff --git a/validate/common.go b/validate/common.go index 8e509d0..88ae218 100644 --- a/validate/common.go +++ b/validate/common.go @@ -7,6 +7,7 @@ import ( "gitea.pena/PenaSide/common/encrypt" "gitea.pena/PenaSide/common/minio_initialize" "gitea.pena/PenaSide/common/mongo" + "github.com/go-redis/redis/v8" "github.com/gofiber/fiber/v2" "github.com/minio/minio-go/v7" "github.com/pioz/faker" @@ -244,3 +245,30 @@ func ValidateKafka(brokers []string, topic string) error { return nil } + +func ValidateRedis(redisHost, redisPassword string, redisDB int) error { + if redisHost == "" { + return fmt.Errorf("redis host is empty") + } + + f := func() (*redis.Client, error) { + rdb := redis.NewClient(&redis.Options{ + Addr: redisHost, + Password: redisPassword, + DB: redisDB, + }) + + status := rdb.Ping(context.TODO()) + if err := status.Err(); err != nil { + return nil, err + } + + return rdb, nil + } + + _, err := f() + if err != nil { + return err + } + return nil +} diff --git a/validate/validate_test.go b/validate/validate_test.go index 6737a75..b09dd72 100644 --- a/validate/validate_test.go +++ b/validate/validate_test.go @@ -28,3 +28,8 @@ func TestValidateKafka(t *testing.T) { err := ValidateKafka([]string{"localhost:9092"}, "test-topic") assert.NoError(t, err) } + +func TestValidateRedis(t *testing.T) { + err := ValidateRedis("localhost:6379", "admin", 2) + assert.NoError(t, err) +}