framework1/framework/contract/redis.go

29 lines
725 B
Go
Raw Normal View History

2024-10-23 17:00:42 +08:00
package contract
import (
"fmt"
"github.com/Superdanda/hade/framework"
"github.com/redis/go-redis/v9"
)
const RedisKey = "hade:redis"
// RedisOption 代表初始化的时候的选项
type RedisOption func(container framework.Container, config *RedisConfig) error
// RedisService 表示一个redis服务
type RedisService interface {
// GetClient 获取redis连接实例
GetClient(option ...RedisOption) (*redis.Client, error)
}
// RedisConfig 为hade定义的Redis配置结构
type RedisConfig struct {
*redis.Options
}
// UniqKey 用来唯一标识一个RedisConfig配置
func (config *RedisConfig) UniqKey() string {
return fmt.Sprintf("%v_%v_%v_%v", config.Addr, config.DB, config.Username, config.Network)
}