2024-06-19 10:24:51 +08:00
// Package define ...
//
// Description : define ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2024-06-18 16:12
package define
2024-10-08 16:31:59 +08:00
import redisClient "github.com/redis/go-redis/v9"
2024-06-20 18:38:23 +08:00
type Options struct {
2024-06-20 18:44:55 +08:00
DB int ` json:"db" yaml:"db" ini:"db" toml:"db" ` // 选择的数据库序号
2024-06-20 18:38:23 +08:00
Network string ` json:"network" yaml:"network" ini:"network" toml:"network" ` // 网络连接方式
2024-06-19 10:24:51 +08:00
// A seed list of host:port addresses of cluster nodes.
2024-06-20 18:38:23 +08:00
Addr string ` json:"addr" yaml:"addr" ini:"addr" toml:"addr" ` // 集群IP列表
2024-06-19 10:24:51 +08:00
// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn.
ClientName string ` json:"client_name" yaml:"client_name" ini:"client_name" toml:"client_name" ` // 集群名称
Protocol int
Username string ` json:"username" yaml:"username" ini:"username" toml:"username" `
Password string ` json:"password" yaml:"password" ini:"password" toml:"password" `
MaxRetries int ` json:"max_retries" yaml:"max_retries" ini:"max_retries" toml:"max_retries" `
MinRetryBackoff int ` json:"min_retry_backoff" yaml:"min_retry_backoff" ini:"min_retry_backoff" toml:"min_retry_backoff" ` // 最小重试间隔,单位 : ms
MaxRetryBackoff int ` json:"max_retry_backoff" yaml:"max_retry_backoff" ini:"max_retry_backoff" toml:"max_retry_backoff" ` // 最大重试时间间隔, 单位 : ms
DialTimeout int ` json:"dial_timeout" yaml:"dial_timeout" ini:"dial_timeout" toml:"dial_timeout" ` // 连接超时时间
ReadTimeout int ` json:"read_timeout" yaml:"read_timeout" ini:"read_timeout" toml:"read_timeout" ` // 读取超时时间
WriteTimeout int ` json:"write_timeout" yaml:"write_timeout" ini:"write_timeout" toml:"write_timeout" ` // 写入超时时间
ContextTimeoutEnabled bool ` json:"context_timeout_enabled" yaml:"context_timeout_enabled" ini:"context_timeout_enabled" toml:"context_timeout_enabled" `
PoolFIFO bool ` json:"pool_fifo" yaml:"pool_fifo" ini:"pool_fifo" toml:"pool_fifo" `
PoolSize int ` json:"pool_size" yaml:"pool_size" ini:"pool_size" toml:"pool_size" ` // applies per cluster node and not for the whole cluster
PoolTimeout int ` json:"pool_timeout" yaml:"pool_timeout" ini:"pool_timeout" toml:"pool_timeout" ` // 单位 : ms
MinIdleConn int ` json:"min_idle_conn" yaml:"min_idle_conn" ini:"min_idle_conn" toml:"min_idle_conn" ` // 最小空闲连接数
MaxIdleConn int ` json:"max_idle_conn" yaml:"max_idle_conn" ini:"max_idle_conn" toml:"max_idle_conn" ` // 最大空闲连接数
MaxActiveConn int ` json:"max_active_conn" yaml:"max_active_conn" ini:"max_active_conn" toml:"max_active_conn" ` // applies per cluster node and not for the whole cluster
ConnMaxIdleTime int ` json:"conn_max_idle_time" yaml:"conn_max_idle_time" ini:"conn_max_idle_time" toml:"conn_max_idle_time" ` // 连接最大空闲时长, 单位 : s
ConnMaxLifetime int ` json:"conn_max_lifetime" yaml:"conn_max_lifetime" ini:"conn_max_lifetime" toml:"conn_max_lifetime" ` // 连接最大存活时长, 单位ms
DisableIdentity bool ` json:"disable_identity" yaml:"disable_identity" ini:"disable_identity" toml:"disable_identity" ` // Disable set-lib on connect. Default is false.
IdentitySuffix string ` json:"identity_suffix" yaml:"identity_suffix" ini:"identity_suffix" toml:"identity_suffix" ` // Add suffix to client name. Default is empty.
}
2024-10-08 16:31:59 +08:00
// Config 数据库连接配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:59 2024/10/8
type Config struct {
ReadOnly bool ` json:"readonly" yaml:"readonly" ini:"readonly" toml:"readonly" `
Master * Options ` json:"master" yaml:"master" ini:"master" toml:"master" ` // 主库配置
Slave * Options ` json:"slave" yaml:"slave" ini:"slave" toml:"slave" ` // 主库配置
}
// ClientInfo 客户端连接信息
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 16:06 2024/10/8
type ClientInfo struct {
ReadOnly bool // 是否只读
Master * redisClient . Client // 主库连接
Slave * redisClient . Client // 从库连接
}
func ( cf * ClientInfo ) MasterClient ( ) * redisClient . Client {
return cf . Master
}
func ( cf * ClientInfo ) SlaveClient ( ) * redisClient . Client {
if nil != cf . Slave {
return cf . Slave
}
return cf . Master
}