56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/go-redis/redis"
|
|
"rocommon/socket"
|
|
)
|
|
|
|
const NIL = redis.Nil
|
|
|
|
type BaseStore = redis.ZStore
|
|
type BaseZ = redis.Z
|
|
type BaseCmdable = redis.Cmdable
|
|
|
|
type RedisConnector interface {
|
|
RedisCli() BaseCmdable
|
|
SetName(s string)
|
|
}
|
|
|
|
type NetRedisConnector struct {
|
|
socket.NetServerNodeProperty
|
|
socket.NetContextSet
|
|
socket.NetRedisParam
|
|
redisCommonCli redis.Cmdable
|
|
//redisCli *redis.Client
|
|
//redisClusterCli *redis.ClusterClient
|
|
cluster int //>0表示cluster模式(集群版本)
|
|
}
|
|
|
|
func NewNetRedisConnector(addr []string, pwd string, dbIndex, cluster int) RedisConnector {
|
|
rs := &NetRedisConnector{}
|
|
rs.cluster = cluster
|
|
if cluster <= 0 {
|
|
rs.SetAddr(addr[0])
|
|
rs.SetPwd(pwd)
|
|
rs.SetDBIndex(dbIndex)
|
|
|
|
rs.redisCommonCli = redis.NewClient(&redis.Options{
|
|
Addr: addr[0],
|
|
Password: pwd,
|
|
DB: dbIndex,
|
|
})
|
|
} else {
|
|
rs.SetPwd(pwd)
|
|
rs.redisCommonCli = redis.NewClusterClient(
|
|
&redis.ClusterOptions{
|
|
Addrs: addr,
|
|
Password: pwd,
|
|
})
|
|
}
|
|
return rs
|
|
}
|
|
|
|
func (this *NetRedisConnector) RedisCli() BaseCmdable {
|
|
return this.redisCommonCli
|
|
}
|