应用集成平台服务端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

77 lines
2.6 KiB

package confignosql
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
type RedisSetUp struct {
MasterRedis RedisConfitSetUp `mapstructure:"master" json:"master" yaml:"master"` //主数据库
MasterRedis1 RedisConfitSetUp `mapstructure:"master1" json:"master1" yaml:"master1"` //主数据库
MasterRedis2 RedisConfitSetUp `mapstructure:"master2" json:"master2" yaml:"master2"` //主数据库
MasterRedis3 RedisConfitSetUp `mapstructure:"master3" json:"master3" yaml:"master3"` //主数据库
MasterRedis4 RedisConfitSetUp `mapstructure:"master4" json:"master4" yaml:"master4"` //主数据库
MasterRedis5 RedisConfitSetUp `mapstructure:"master5" json:"master5" yaml:"master5"` //主数据库
RedisCluster RedisConfitSetUp `mapstructure:"redisCluster" json:"redisCluster" yaml:"redisCluster"` //内网集群
}
type RedisConfitSetUp struct {
UrlPath string `mapstructure:"url_path" json:"url_path" yaml:"url_path"` // 服务器地址
Port int `mapstructure:"port" json:"port" yaml:"port"` // 端口
Name int `mapstructure:"name" json:"name" yaml:"name"` // 数据库名称
PassWord string `mapstructure:"password" json:"password" yaml:"password"` // 密码
UrlPathList []string `mapstructure:"url_path_list" json:"url_path_list"`
}
func (r *RedisConfitSetUp) OpenRedis() *redis.Client {
address := fmt.Sprintf("%v:%v", r.UrlPath, r.Port)
fmt.Printf("开启%v Redis库 %v\n", address, r.Name)
redisClient := redis.NewClient(&redis.Options{
Addr: address,
Password: r.PassWord,
DB: r.Name,
})
pingLink, err := redisClient.Ping(context.Background()).Result()
if err != nil {
fmt.Printf("%v Redis链接失败!原因:%v\n", r.Name, err)
} else {
fmt.Printf("%v Redis链接成功!==%v===>%v\n", r.Name, r.UrlPath, pingLink)
}
return redisClient
}
/*
*
@ 作者: 秦东
@ 时间: 2023-12-13 10:12:38
@ 功能: 链接redis集群
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (r *RedisConfitSetUp) OpenRedisColony() *redis.ClusterClient {
fmt.Printf("开启%v Redis集群库 %v\n", r.UrlPathList, r.Name)
redisClient := redis.NewClusterClient(&redis.ClusterOptions{
Addrs: r.UrlPathList,
Password: r.PassWord,
RouteRandomly: true,
// DB: r.Name,
})
pingLink, err := redisClient.Ping(context.Background()).Result()
if err != nil {
fmt.Printf("%v Redis集群链接失败!原因:%v\n", r.Name, err)
} else {
fmt.Printf("%v Redis集群链接成功!==%v===>%v\n", r.Name, r.UrlPath, pingLink)
}
return redisClient
}