张金坤 8 years ago
parent
commit
2abbdfca3b
1 changed files with 44 additions and 0 deletions
  1. 44 0
      common/src/qfw/util/redis/redisutil.go

+ 44 - 0
common/src/qfw/util/redis/redisutil.go

@@ -78,6 +78,50 @@ func Put(code, key string, obj interface{}, timeout int) bool {
 	return b
 	return b
 }
 }
 
 
+func BulkPut(code string, timeout int, obj ...interface{}) bool {
+	b := false
+	defer func() {
+		if r := recover(); r != nil {
+			log.Println("[E]", r)
+			for skip := 1; ; skip++ {
+				_, file, line, ok := runtime.Caller(skip)
+				if !ok {
+					break
+				}
+				go log.Printf("%v,%v\n", file, line)
+			}
+		}
+	}()
+	conn := RedisPool[code].Get()
+	defer conn.Close()
+	var err error
+	for _, _tmp := range obj {
+		tmp, ok := _tmp.([]interface{})
+		if ok && len(tmp) == 2 {
+			key, kok := tmp[0].(string)
+			if kok && key != "" {
+				_obj, _err := json.Marshal(tmp[1])
+				if _err != nil {
+					log.Println("redisutil-SET-序列化出错Error", _err)
+					return b
+				}
+				if timeout < 1 {
+					_, err = conn.Do("SET", key, _obj)
+				} else {
+					_, err = conn.Do("SET", key, _obj, "EX", timeout)
+				}
+			}
+		}
+	}
+	if nil != err {
+		b = false
+		log.Println("redisutil-SETError-put", err)
+	} else {
+		b = b && true
+	}
+	return b
+}
+
 //直接存字节流
 //直接存字节流
 func PutBytes(code, key string, data *[]byte, timeout int) (err error) {
 func PutBytes(code, key string, data *[]byte, timeout int) (err error) {