123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package rdbx
- import (
- "context"
- "log"
- "github.com/redis/go-redis/v9"
- "github.com/spf13/viper"
- )
- const KeyPrefix = "redis"
- var rdbConn *redis.Client
- type redisConfig struct {
- Addr string `yaml:"addr"` // Addr 链接地址
- DB int `yaml:"db"` // DB 数据库, 一般默认是0
- Password string `yaml:"password"` // Password 密码
- // Channel 来控制订阅频道, 连接发送消息会发送到频道
- // Channel string `yaml:"channel"` // Channel 订阅频道
- // ConnectKey 连接 key, websocket connect 创建时会在 redis 里保存信息,
- // 这里的 ConnectKey 相当于前缀保存在 redis 里的 key
- ConnectKey string `yaml:"connect_key"`
- }
- func Connect() *redis.Client {
- cfg := readRedisConfig()
- addr := cfg.Addr
- rdb := redis.NewClient(&redis.Options{
- Addr: addr,
- Password: cfg.Password,
- DB: cfg.DB,
- })
- if err := rdb.Ping(context.Background()).Err(); err != nil {
- log.Fatalln(err)
- }
- rdbConn = rdb
- log.Printf("Redis connected to %s \n", addr)
- return rdb
- }
- func GetConnect() *redis.Client {
- return rdbConn
- }
- func GetRedisConfig() redisConfig {
- return readRedisConfig()
- }
- func readRedisConfig() redisConfig {
- var cfg redisConfig
- if err := viper.UnmarshalKey("redis", &cfg); err != nil {
- log.Fatalln(err)
- }
- return cfg
- }
|