From 6320e4203f541c9fa21258e2e3e37ae963c0313f Mon Sep 17 00:00:00 2001 From: hujiebin Date: Tue, 22 Aug 2023 10:55:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0redis-cluster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- domain/ctx.go | 3 ++- domain/model.go | 14 +++++++------ domain/service.go | 14 +++++++------ resource/config/config.go | 6 ++++-- resource/redisCli/redisCluster.go | 33 +++++++++++++++++++++++++++++++ 5 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 resource/redisCli/redisCluster.go diff --git a/domain/ctx.go b/domain/ctx.go index d433cca..f4da596 100644 --- a/domain/ctx.go +++ b/domain/ctx.go @@ -9,5 +9,6 @@ import ( type CtxAndDb struct { Db *gorm.DB *mycontext.MyContext - Redis *redis.Client + Redis *redis.Client + RedisCluster *redis.Client } diff --git a/domain/model.go b/domain/model.go index ce2ef5c..08e780a 100644 --- a/domain/model.go +++ b/domain/model.go @@ -21,9 +21,10 @@ func CreateModel(ctxAndDb *CtxAndDb) *Model { func CreateModelContext(myContext *mycontext.MyContext) *Model { return &Model{ CtxAndDb: &CtxAndDb{ - Db: mysql.Db, - MyContext: myContext, - Redis: redisCli.GetRedis(), + Db: mysql.Db, + MyContext: myContext, + Redis: redisCli.GetRedis(), + RedisCluster: redisCli.GetClusterRedis(), }, } } @@ -31,9 +32,10 @@ func CreateModelContext(myContext *mycontext.MyContext) *Model { func CreateModelNil() *Model { return &Model{ CtxAndDb: &CtxAndDb{ - Db: mysql.Db, - MyContext: mycontext.CreateMyContext(nil), - Redis: redisCli.GetRedis(), + Db: mysql.Db, + MyContext: mycontext.CreateMyContext(nil), + Redis: redisCli.GetRedis(), + RedisCluster: redisCli.GetClusterRedis(), }, } } diff --git a/domain/service.go b/domain/service.go index 70bc4a2..82ec1de 100644 --- a/domain/service.go +++ b/domain/service.go @@ -23,15 +23,17 @@ func (service *Service) getMyContext() *mycontext.MyContext { func CreateService(myContext *mycontext.MyContext) *Service { if myContext == nil { return &Service{CtxAndDb: &CtxAndDb{ - Db: mysql.Db, - MyContext: mycontext.CreateMyContext(nil), - Redis: redisCli.GetRedis(), + Db: mysql.Db, + MyContext: mycontext.CreateMyContext(nil), + Redis: redisCli.GetRedis(), + RedisCluster: redisCli.GetClusterRedis(), }} } else { return &Service{CtxAndDb: &CtxAndDb{ - Db: mysql.Db, - MyContext: myContext, - Redis: redisCli.GetRedis(), + Db: mysql.Db, + MyContext: myContext, + Redis: redisCli.GetRedis(), + RedisCluster: redisCli.GetClusterRedis(), }} } } diff --git a/resource/config/config.go b/resource/config/config.go index 6e6d794..a89ed1b 100644 --- a/resource/config/config.go +++ b/resource/config/config.go @@ -26,8 +26,10 @@ type MysqlCodeConfig struct { //redis配置 type RedisConfig struct { - REDIS_HOST string - REDIS_PASSWORD string + REDIS_HOST string + REDIS_PASSWORD string + REDIS_CLUSTER_HOST string + REDIS_CLUSTER_PASSWORD string } //jwt diff --git a/resource/redisCli/redisCluster.go b/resource/redisCli/redisCluster.go new file mode 100644 index 0000000..7a8338e --- /dev/null +++ b/resource/redisCli/redisCluster.go @@ -0,0 +1,33 @@ +package redisCli + +import ( + "context" + "git.hilo.cn/hilo-common/mylogrus" + "git.hilo.cn/hilo-common/resource/config" + "github.com/go-redis/redis/v8" +) + +var RedisClusterClient *redis.Client + +func Init() { + RedisClusterClient = redis.NewClient(&redis.Options{ + Addr: config.GetConfigRedis().REDIS_CLUSTER_HOST, + Password: config.GetConfigRedis().REDIS_CLUSTER_PASSWORD, // no password set + DB: 0, // use default DB + PoolSize: 20, + MinIdleConns: 20, + }) + mylogrus.MyLog.Infoln(config.GetConfigRedis().REDIS_HOST) + mylogrus.MyLog.Infoln(config.GetConfigRedis().REDIS_PASSWORD) + pong, err := RedisClient.Ping(context.Background()).Result() + if err != nil { + mylogrus.MyLog.Warn(err) + mylogrus.MyLog.Fatal("redis cluster db0 connect fail") + } else { + mylogrus.MyLog.Info("redis cluster db0 connection success - ", pong) + } +} + +func GetClusterRedis() *redis.Client { + return RedisClusterClient +} -- 2.22.0