mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
优化redis模块系统日志
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/gomodule/redigo/redis"
|
||||
)
|
||||
|
||||
//最大redis信道任务量
|
||||
const (
|
||||
MAX_TASK_CHANNEL = 10240
|
||||
)
|
||||
@@ -67,7 +68,7 @@ func (slf *RedisModule) Init(redisCfg *ConfigRedis) {
|
||||
}
|
||||
c, err := redis.Dial("tcp", redisServer, opt...)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "Connect redis fail reason:%v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -79,6 +80,10 @@ func (slf *RedisModule) Init(redisCfg *ConfigRedis) {
|
||||
return nil
|
||||
}
|
||||
_, err := c.Do("PING")
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_WARN, "Do PING fail reason:%v", err)
|
||||
return err
|
||||
}
|
||||
return err
|
||||
},
|
||||
}
|
||||
@@ -96,7 +101,8 @@ func (slf *RedisModule) RunAnsyTask() {
|
||||
|
||||
func (slf *RedisModule) GoTask(fc Func) error {
|
||||
if len(slf.redisTask) >= MAX_TASK_CHANNEL {
|
||||
return fmt.Errorf("chanel recover max channel.")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "Redis task channel recover max.")
|
||||
return fmt.Errorf("Redis task channel recover max.")
|
||||
}
|
||||
|
||||
slf.redisTask <- fc
|
||||
@@ -107,12 +113,17 @@ func (slf *RedisModule) GoTask(fc Func) error {
|
||||
func (slf *RedisModule) getConn() (redis.Conn, error) {
|
||||
conn := slf.redispool.Get()
|
||||
if conn == nil {
|
||||
return nil, fmt.Errorf("not get connection")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "Cannot get connection")
|
||||
return nil, fmt.Errorf("Cannot get connection")
|
||||
}
|
||||
|
||||
if conn.Err() != nil {
|
||||
defer conn.Close()
|
||||
return nil, conn.Err()
|
||||
err := conn.Err()
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_WARN, "Get Conn have error,reason:%v", err)
|
||||
}
|
||||
conn.Close()
|
||||
return nil, err
|
||||
}
|
||||
return conn, nil
|
||||
}
|
||||
@@ -127,6 +138,7 @@ func (slf *RedisModule) TestPingRedis() error {
|
||||
|
||||
err = slf.redispool.TestOnBorrow(conn, time.Now())
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "TestOnBorrow fail,reason:%v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -150,7 +162,7 @@ func (slf *RedisModule) GoSetString(key, value string, err *RetError) {
|
||||
func (slf *RedisModule) SetStringExpire(key, value, expire string) (err error) {
|
||||
err = slf.setStringByExpire(key, value, expire)
|
||||
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
func (slf *RedisModule) GoSetStringExpire(key, value string, expire string, err *RetError) error {
|
||||
@@ -177,7 +189,7 @@ func (slf *RedisModule) GoSetStringExpire(key, value string, expire string, err
|
||||
func (slf *RedisModule) SetStringJSON(key string, val interface{}) (err error) {
|
||||
err = slf.SetStringJSONExpire(key, val, "-1")
|
||||
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
func (slf *RedisModule) GoSetStringJSON(key string, val interface{}, err *RetError) {
|
||||
@@ -191,7 +203,7 @@ func (slf *RedisModule) SetStringJSONExpire(key string, val interface{}, expire
|
||||
err = slf.setStringByExpire(key, string(temp), expire)
|
||||
}
|
||||
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
func (slf *RedisModule) GoSetStringJSONExpire(key string, val interface{}, expire string, retErr *RetError) error {
|
||||
@@ -200,6 +212,7 @@ func (slf *RedisModule) GoSetStringJSONExpire(key string, val interface{}, expir
|
||||
slf.GoSetStringExpire(key, string(temp), expire, retErr)
|
||||
return nil
|
||||
} else {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GoSetStringJSONExpire fail,reason:%v", err)
|
||||
retErr.resultChan <- err
|
||||
}
|
||||
return err
|
||||
@@ -225,12 +238,14 @@ func (slf *RedisModule) setStringByExpire(key, value, expire string) error {
|
||||
}
|
||||
|
||||
if retErr != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "setStringByExpire fail,reason:%v", retErr)
|
||||
return retErr
|
||||
}
|
||||
|
||||
_, ok := ret.(string)
|
||||
if !ok {
|
||||
retErr = errors.New("Func[SetRedisString] Redis Data Error")
|
||||
retErr = errors.New("setStringByExpire redis data is error")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "setStringByExpire redis data is error")
|
||||
return retErr
|
||||
}
|
||||
|
||||
@@ -276,8 +291,10 @@ func (slf *RedisModule) GoSetMuchStringExpire(mapInfo map[string]string, expire
|
||||
|
||||
func (slf *RedisModule) setMuchStringByExpire(mapInfo map[string]string, expire string) error {
|
||||
if len(mapInfo) <= 0 {
|
||||
return errors.New("Save Info Is Empty")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "setMuchStringByExpire Info Is Empty")
|
||||
return errors.New("setMuchStringByExpire Info Is Empty")
|
||||
}
|
||||
|
||||
conn, err := slf.getConn()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -297,10 +314,10 @@ func (slf *RedisModule) setMuchStringByExpire(mapInfo map[string]string, expire
|
||||
_, err = conn.Do("EXEC")
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "setMuchStringByExpire fail,reason:%v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
//GetRedisString redis获取string类型数据
|
||||
@@ -314,17 +331,19 @@ func (slf *RedisModule) GetString(key string) (string, error) {
|
||||
|
||||
ret, err := conn.Do("GET", key)
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetString fail,reason:%v", err)
|
||||
return "", err
|
||||
}
|
||||
|
||||
if ret == nil {
|
||||
err = errors.New("Func[GetRedisString] Key Is Not Exist")
|
||||
err = errors.New("GetString key is not exist!")
|
||||
return "", err
|
||||
}
|
||||
|
||||
str, ok := ret.([]byte)
|
||||
if !ok {
|
||||
err = errors.New("Func[GetRedisString] Redis Data Error")
|
||||
err = errors.New("GetString redis data is error")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetString redis data is error")
|
||||
return "", err
|
||||
}
|
||||
|
||||
@@ -342,21 +361,24 @@ func (slf *RedisModule) GetStringJSON(key string, st interface{}) error {
|
||||
|
||||
ret, err := conn.Do("GET", key)
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetStringJSON fail,reason:%v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
if ret == nil {
|
||||
err = errors.New("Func[GetRedisString] Key Is Not Exist")
|
||||
err = errors.New("GetStringJSON Key is not exist")
|
||||
return err
|
||||
}
|
||||
|
||||
str, ok := ret.([]byte)
|
||||
if !ok {
|
||||
err = errors.New("Func[GetRedisString] Redis Data Error")
|
||||
err = errors.New("GetStringJSON redis data is error!")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetStringJSON redis data is error!")
|
||||
return err
|
||||
}
|
||||
|
||||
if err = json.Unmarshal(str, st); err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetStringJSON fail json.Unmarshal is error,reason:%v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -379,7 +401,11 @@ func (slf *RedisModule) GetMuchString(keys []string) (retMap map[string]string,
|
||||
defer conn.Close()
|
||||
|
||||
// 开始Send数据
|
||||
conn.Send("MULTI")
|
||||
err = conn.Send("MULTI")
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetMuchString fail %v", err)
|
||||
return nil, err
|
||||
}
|
||||
for _, val := range keys {
|
||||
conn.Send("GET", val)
|
||||
}
|
||||
@@ -387,6 +413,7 @@ func (slf *RedisModule) GetMuchString(keys []string) (retMap map[string]string,
|
||||
ret, err := conn.Do("EXEC")
|
||||
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetMuchString fail %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -417,7 +444,8 @@ func (slf *RedisModule) GetMuchString(keys []string) (retMap map[string]string,
|
||||
//GetMuchRedisStringJSON(&temp)
|
||||
func (slf *RedisModule) GetMuchStringJSON(keys map[string]interface{}) error {
|
||||
if len(keys) <= 0 {
|
||||
err := errors.New("Func[GetMuchRedisStringJSON] Keys Is Empty")
|
||||
err := errors.New("GetMuchStringJSON fail key is empty")
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetMuchStringJSON fail key is empty")
|
||||
return err
|
||||
}
|
||||
conn, err := slf.getConn()
|
||||
@@ -428,6 +456,7 @@ func (slf *RedisModule) GetMuchStringJSON(keys map[string]interface{}) error {
|
||||
|
||||
// 开始Send数据
|
||||
conn.Send("MULTI")
|
||||
|
||||
var tempKeys []string
|
||||
for key := range keys {
|
||||
tempKeys = append(tempKeys, key)
|
||||
@@ -437,6 +466,7 @@ func (slf *RedisModule) GetMuchStringJSON(keys map[string]interface{}) error {
|
||||
ret, err := conn.Do("EXEC")
|
||||
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetMuchStringJSON fail, reason:%v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -454,7 +484,11 @@ func (slf *RedisModule) GetMuchStringJSON(keys map[string]interface{}) error {
|
||||
continue
|
||||
}
|
||||
|
||||
json.Unmarshal(strVal, keys[tempKeys[index]])
|
||||
err = json.Unmarshal(strVal, keys[tempKeys[index]])
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetMuchStringJSON Unmarshal fail, reason:%v", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -471,6 +505,7 @@ func (slf *RedisModule) DelString(key string) error {
|
||||
|
||||
ret, err := conn.Do("DEL", key)
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "DelString fail, reason:%v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -546,6 +581,7 @@ func (slf *RedisModule) DelMuchString(keys []string) (map[string]bool, error) {
|
||||
ret, err := conn.Do("EXEC")
|
||||
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "DelMuchString fail,reason:%v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -583,12 +619,11 @@ func (slf *RedisModule) SetHash(redisKey, hashKey, value string) error {
|
||||
defer conn.Close()
|
||||
|
||||
_, retErr := conn.Do("HSET", redisKey, hashKey, value)
|
||||
|
||||
if retErr != nil {
|
||||
return retErr
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "SetHash fail,reason:%v", retErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
return retErr
|
||||
}
|
||||
|
||||
func (slf *RedisModule) GoSetHash(redisKey, hashKey, value string, err *RetError) {
|
||||
@@ -619,7 +654,7 @@ func (slf *RedisModule) GetAllHashJSON(redisKey string) (map[string]string, erro
|
||||
|
||||
value, err := redis.Values(conn.Do("HGETALL", redisKey))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetAllHashJSON fail,reason:%v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -630,6 +665,7 @@ func (slf *RedisModule) GetAllHashJSON(redisKey string) (map[string]string, erro
|
||||
func (slf *RedisModule) GetHashValueByKey(redisKey string, fieldKey string) (string, error) {
|
||||
|
||||
if redisKey == "" || fieldKey == "" {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetHashValueByKey key is empty!")
|
||||
return "", errors.New("Key Is Empty")
|
||||
}
|
||||
conn, err := slf.getConn()
|
||||
@@ -640,7 +676,7 @@ func (slf *RedisModule) GetHashValueByKey(redisKey string, fieldKey string) (str
|
||||
|
||||
value, err := conn.Do("HGET", redisKey, fieldKey)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "GetHashValueByKey fail,reason:%v", err)
|
||||
return "", err
|
||||
}
|
||||
if value == nil {
|
||||
@@ -701,12 +737,10 @@ func (slf *RedisModule) SetMuchHashJSON(redisKey string, value map[string][]inte
|
||||
}
|
||||
// 执行命令
|
||||
_, err = conn.Do("EXEC")
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "SetMuchHashJSON fail,reason:%v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
func (slf *RedisModule) GoSetMuchHashJSON(redisKey string, value map[string][]interface{}, err *RetError) {
|
||||
@@ -774,12 +808,10 @@ func (slf *RedisModule) DelMuchHash(redisKey string, hsahKey []string) error {
|
||||
}
|
||||
|
||||
_, retErr := conn.Do("HDEL", arg...)
|
||||
|
||||
if retErr != nil {
|
||||
return retErr
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "DelMuchHash fail,reason:%v", retErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
return retErr
|
||||
}
|
||||
|
||||
//gosetRedisList
|
||||
@@ -818,19 +850,16 @@ func (slf *RedisModule) setList(key string, value []string, setType string) erro
|
||||
arg = append(arg, k)
|
||||
}
|
||||
_, retErr := conn.Do(setType, arg...)
|
||||
|
||||
if retErr != nil {
|
||||
return retErr
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "setList fail,reason:%v", retErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
return retErr
|
||||
}
|
||||
|
||||
//SetRedisListLpush ...
|
||||
func (slf *RedisModule) SetListLpush(key, value string) error {
|
||||
tempVal := []string{value}
|
||||
err := slf.setList(key, tempVal, "LPUSH")
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -856,8 +885,9 @@ func (slf *RedisModule) SetListJSONLpush(key string, value interface{}) error {
|
||||
if err == nil {
|
||||
tempVal := []string{string(temp)}
|
||||
err = slf.setList(key, tempVal, "LPUSH")
|
||||
} else {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "SetListJSONLpush fail,reason:%v", err)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -891,7 +921,13 @@ func (slf *RedisModule) GoSetMuchListJSONLpush(key string, value []interface{},
|
||||
func (slf *RedisModule) SetMuchListJSONLpush(key string, value []interface{}) error {
|
||||
tempVal := []string{}
|
||||
for _, val := range value {
|
||||
if temp, err := json.Marshal(val); err == nil {
|
||||
temp, err := json.Marshal(val)
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "SetMuchListJSONLpush fail,reason:%v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
if err == nil {
|
||||
tempVal = append(tempVal, string(temp))
|
||||
}
|
||||
}
|
||||
@@ -929,6 +965,8 @@ func (slf *RedisModule) SetListJSONRpush(key string, value interface{}) error {
|
||||
if err == nil {
|
||||
tempVal := []string{string(temp)}
|
||||
err = slf.setList(key, tempVal, "RPUSH")
|
||||
} else {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "SetListJSONRpush fail,reason:%v", err)
|
||||
}
|
||||
|
||||
return err
|
||||
@@ -982,6 +1020,7 @@ func (slf *RedisModule) Lrange(key string, start, end int) ([]string, error) {
|
||||
|
||||
reply, err := conn.Do("lrange", key, start, end)
|
||||
if err != nil {
|
||||
service.GetLogger().Printf(service.LEVER_ERROR, "SetListJSONRpush fail,reason:%v", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user