feat: use postgres
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package redisconn
|
||||
|
||||
import (
|
||||
"github.com/redis/go-redis/v9"
|
||||
)
|
||||
|
||||
// NewMasterClient builds the master Redis client from cfg using the
|
||||
// conservative options shared by the existing service publishers
|
||||
// (`Protocol: 2`, `DisableIdentity: true`, dial/read/write timeouts bound to
|
||||
// cfg.OperationTimeout).
|
||||
//
|
||||
// NewMasterClient does not validate cfg; callers are expected to call
|
||||
// Config.Validate (or LoadFromEnv which already does) before invoking this.
|
||||
func NewMasterClient(cfg Config) *redis.Client {
|
||||
return redis.NewClient(buildOptions(cfg.MasterAddr, cfg))
|
||||
}
|
||||
|
||||
// NewReplicaClients builds one Redis client per replica address. It returns
|
||||
// nil when no replicas are configured; callers treat that as "no replicas
|
||||
// wired".
|
||||
func NewReplicaClients(cfg Config) []*redis.Client {
|
||||
if len(cfg.ReplicaAddrs) == 0 {
|
||||
return nil
|
||||
}
|
||||
clients := make([]*redis.Client, 0, len(cfg.ReplicaAddrs))
|
||||
for _, addr := range cfg.ReplicaAddrs {
|
||||
clients = append(clients, redis.NewClient(buildOptions(addr, cfg)))
|
||||
}
|
||||
return clients
|
||||
}
|
||||
|
||||
func buildOptions(addr string, cfg Config) *redis.Options {
|
||||
return &redis.Options{
|
||||
Addr: addr,
|
||||
Password: cfg.Password,
|
||||
DB: cfg.DB,
|
||||
Protocol: 2,
|
||||
DisableIdentity: true,
|
||||
DialTimeout: cfg.OperationTimeout,
|
||||
ReadTimeout: cfg.OperationTimeout,
|
||||
WriteTimeout: cfg.OperationTimeout,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user