renzheng 2 年 前
コミット
9038bafc6f
1 ファイル変更11 行追加11 行削除
  1. 11 11
      redis/goredis.go

+ 11 - 11
redis/goredis.go

@@ -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)