|
@@ -131,7 +131,6 @@ func (r *GoRedis) Init(opt interface{}) {
|
|
|
r.init(addr1[0], code, dbs, pool[1], pool[0], idle)
|
|
|
} else { //多节点模式
|
|
|
r.Code = code
|
|
|
- r.DB = dbs[0]
|
|
|
r.HashDb = 1 + len(dbs)
|
|
|
if len(dbs) > 1 {
|
|
|
r.DBS = []int{}
|
|
@@ -141,6 +140,7 @@ func (r *GoRedis) Init(opt interface{}) {
|
|
|
} else {
|
|
|
r.DBS = dbs
|
|
|
}
|
|
|
+ r.DB = dbs[0]
|
|
|
r.Ctx = context.Background()
|
|
|
r.CMap = map[int]map[int]*redis.Client{}
|
|
|
r.Nodes = []int{}
|
|
@@ -198,13 +198,13 @@ func D(t int) time.Duration {
|
|
|
//取db
|
|
|
func (r *GoRedis) GetDB(key string) (int, int) {
|
|
|
switch r.HashDb {
|
|
|
- case 0:
|
|
|
- return 0, r.DB
|
|
|
- case 1:
|
|
|
+ case 0: //单节点单库
|
|
|
+ return 0, 0
|
|
|
+ case 1: //单节点多库
|
|
|
return 0, hashCode(key) % len(r.DBS)
|
|
|
- case 2:
|
|
|
- return hashCode(key[len(key)/2:]) % len(r.Nodes), r.DB
|
|
|
- case 3:
|
|
|
+ case 2: //多节点单库
|
|
|
+ return hashCode(key[len(key)/2:]) % len(r.Nodes), 0
|
|
|
+ case 3: ////多节点多库
|
|
|
return hashCode(key[len(key)/2:]) % len(r.Nodes), hashCode(key) % len(r.DBS)
|
|
|
}
|
|
|
// if r.HashDb {
|
|
@@ -321,14 +321,14 @@ func (r *GoRedis) BulkPut(timeout int, obj interface{}) {
|
|
|
} else {
|
|
|
//单库直接保存
|
|
|
if timeout < 1 {
|
|
|
- stutsCmd := r.CMap[0][r.DB].MSet(r.Ctx, obj)
|
|
|
+ stutsCmd := r.CMap[0][0].MSet(r.Ctx, obj)
|
|
|
str, err := stutsCmd.Result()
|
|
|
log.Println(str, err)
|
|
|
} else {
|
|
|
timeEx := time.Duration(timeout) * time.Second
|
|
|
//设置超时
|
|
|
lenth := 0
|
|
|
- cmds, err := r.CMap[0][r.DB].Pipelined(r.Ctx, func(pipe redis.Pipeliner) error {
|
|
|
+ cmds, err := r.CMap[0][0].Pipelined(r.Ctx, func(pipe redis.Pipeliner) error {
|
|
|
if objs, ok := obj.([]interface{}); ok {
|
|
|
lenth = len(objs)
|
|
|
for _, _tmp := range objs {
|
|
@@ -409,7 +409,7 @@ func (r *GoRedis) Del(key ...string) (b bool) {
|
|
|
i += int(i1)
|
|
|
}
|
|
|
} else {
|
|
|
- intCmd := r.CMap[0][r.DB].Del(r.Ctx, key...)
|
|
|
+ intCmd := r.CMap[0][0].Del(r.Ctx, key...)
|
|
|
i1, _ := intCmd.Result()
|
|
|
i = int(i1)
|
|
|
}
|
|
@@ -466,7 +466,7 @@ func (r *GoRedis) Mget(key []string) []interface{} {
|
|
|
}
|
|
|
return res
|
|
|
} else {
|
|
|
- sliceCmd := r.CMap[0][r.DB].MGet(r.Ctx, key...)
|
|
|
+ sliceCmd := r.CMap[0][0].MGet(r.Ctx, key...)
|
|
|
res, err := sliceCmd.Result()
|
|
|
if err != nil {
|
|
|
log.Println("Mget error", err)
|