|
|
@@ -8,25 +8,35 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-func Del(key string) error {
|
|
|
+func redisInitClient() *redis.Client {
|
|
|
db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
- return err
|
|
|
+ return nil
|
|
|
}
|
|
|
client := redis.NewClient(&redis.Options{
|
|
|
Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
DB: db, //使用默认数据库
|
|
|
})
|
|
|
- //beego.BeeLogger.Info("Connect lib_redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
- defer client.Close() //最后关闭
|
|
|
+ //defer client.Close()
|
|
|
_, err = client.Ping().Result()
|
|
|
if err != nil {
|
|
|
+ beego.BeeLogger.Error("redisError redisInitClient(), err:%s", err)
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ return client
|
|
|
+}
|
|
|
+
|
|
|
+func Del(key string) error {
|
|
|
+ redisClient := redisInitClient()
|
|
|
+ defer redisClient.Close()
|
|
|
+ _, err := redisClient.Ping().Result()
|
|
|
+ if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
return err
|
|
|
}
|
|
|
- return client.Del(key).Err()
|
|
|
+ return redisClient.Del(key).Err()
|
|
|
}
|
|
|
|
|
|
// SetJsonEx set Json and second
|
|
|
@@ -40,47 +50,27 @@ func SetJsonEx(key string, data interface{}, seconds int) error {
|
|
|
|
|
|
//保存keyValue
|
|
|
func SetRedisValue(key, value string, expiration time.Duration) error {
|
|
|
- db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
+ redisClient := redisInitClient()
|
|
|
+ defer redisClient.Close()
|
|
|
+ _, err := redisClient.Ping().Result()
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
return err
|
|
|
}
|
|
|
- client := redis.NewClient(&redis.Options{
|
|
|
- Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
- Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
- DB: db, //使用默认数据库
|
|
|
- })
|
|
|
- beego.BeeLogger.Info("Connect lib_redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
- defer client.Close() //最后关闭
|
|
|
- _, err = client.Ping().Result()
|
|
|
- if err != nil {
|
|
|
- beego.BeeLogger.Error("%s", err)
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- client.Set(key, value, expiration) //忽略错误
|
|
|
+ redisClient.Set(key, value, expiration) //忽略错误
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
//获取keyValue
|
|
|
func GetRedisValue(key string, resp interface{}) (bool, interface{}) {
|
|
|
- db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
- if err != nil {
|
|
|
- beego.BeeLogger.Error("%s", err)
|
|
|
- return false, ""
|
|
|
- }
|
|
|
- client := redis.NewClient(&redis.Options{
|
|
|
- Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
- Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
- DB: db, //使用默认数据库
|
|
|
- })
|
|
|
- defer client.Close() //最后关闭
|
|
|
- _, err = client.Ping().Result()
|
|
|
+ redisClient := redisInitClient()
|
|
|
+ defer redisClient.Close()
|
|
|
+ _, err := redisClient.Ping().Result()
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
return false, ""
|
|
|
}
|
|
|
- val, err := client.Get(key).Result()
|
|
|
+ val, err := redisClient.Get(key).Result()
|
|
|
if err != nil {
|
|
|
return false, ""
|
|
|
}
|
|
|
@@ -94,23 +84,14 @@ func GetRedisValue(key string, resp interface{}) (bool, interface{}) {
|
|
|
|
|
|
// GetFromJSON 从 lib_redis 读取数据, 自带解析JSON格式
|
|
|
func GetFromJSON(data interface{}, key string) error {
|
|
|
- db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
+ redisClient := redisInitClient()
|
|
|
+ defer redisClient.Close()
|
|
|
+ _, err := redisClient.Ping().Result()
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
return err
|
|
|
}
|
|
|
- client := redis.NewClient(&redis.Options{
|
|
|
- Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
- Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
- DB: db, //使用默认数据库
|
|
|
- })
|
|
|
- defer client.Close() //最后关闭
|
|
|
- _, err = client.Ping().Result()
|
|
|
- if err != nil {
|
|
|
- beego.BeeLogger.Error("%s", err)
|
|
|
- return err
|
|
|
- }
|
|
|
- val := client.Get(key)
|
|
|
+ val := redisClient.Get(key)
|
|
|
if val.Err() != nil {
|
|
|
return val.Err()
|
|
|
}
|
|
|
@@ -131,49 +112,28 @@ func GetFromJSON(data interface{}, key string) error {
|
|
|
|
|
|
//保存redis队列
|
|
|
func ThrowInRedisList(key, value string) {
|
|
|
- db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
- if err != nil {
|
|
|
- beego.BeeLogger.Error("%s", err)
|
|
|
- return
|
|
|
- }
|
|
|
- client := redis.NewClient(&redis.Options{
|
|
|
- Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
- Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
- DB: db, //使用默认数据库
|
|
|
- })
|
|
|
- beego.BeeLogger.Info("Connect lib_redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
- defer client.Close() //最后关闭
|
|
|
- _, err = client.Ping().Result()
|
|
|
+ redisClient := redisInitClient()
|
|
|
+ defer redisClient.Close()
|
|
|
+ _, err := redisClient.Ping().Result()
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
return
|
|
|
}
|
|
|
beego.BeeLogger.Info("throwin lib_redis key (%s), value=%s", key, value)
|
|
|
-
|
|
|
- client.LPush(key, value) //rpush则在尾部插入
|
|
|
+ redisClient.LPush(key, value) //rpush则在尾部插入
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//从redis队列剔除
|
|
|
func ThrowOutRedisList(key, value string) {
|
|
|
- db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
- if err != nil {
|
|
|
- beego.BeeLogger.Error("%s", err)
|
|
|
- return
|
|
|
- }
|
|
|
- client := redis.NewClient(&redis.Options{
|
|
|
- Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
- Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
- DB: db, //使用默认数据库
|
|
|
- })
|
|
|
- beego.BeeLogger.Info("Connect lib_redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
- defer client.Close() //最后关闭
|
|
|
- _, err = client.Ping().Result()
|
|
|
+ redisClient := redisInitClient()
|
|
|
+ defer redisClient.Close()
|
|
|
+ _, err := redisClient.Ping().Result()
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("%s", err)
|
|
|
return
|
|
|
}
|
|
|
- client.LRem(key, 0, value)
|
|
|
+ redisClient.LRem(key, 0, value)
|
|
|
beego.BeeLogger.Info("throwout lib_redis key (%s), value=%s", key, value)
|
|
|
return
|
|
|
}
|