diff --git a/domain/ctx.go b/domain/ctx.go index d433ccaf8849a4460992dbc9eed43768701666f0..f4da596089fac2acbdbe0aad9a69289db42145de 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 ce2ef5c5273cda72defe353e75607ab47f2d4c05..08e780a6a4cc2d2cf1e62b00aa7675c94784ea11 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 70bc4a20c4d5643a0e59f79ea6a2b76ca2cf0f5e..82ec1dec5b7f0ed65673b99db33b36873491823d 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 6e6d794a9276d147657b56e7f1b7907f6ce322ef..a89ed1b551e153915de345ea5db6b1695a0f53dd 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 0000000000000000000000000000000000000000..7a8338edae8f32971985a2bdf7cd78b3f5f5df33 --- /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 +}