// Get Redis String Value
func GetRedisString(key string) (string, error) {
redis_conn := rediswrapper.GetRedisPool().Get()
if redis_conn.Err() != nil {
logs.ERRORLOG("GetRedisPool Failed:%s", redis_conn.Err().Error())
return "", public.Err_NoRedis
}
defer redis_conn.Close()
str, err := redis.String(redis_conn.Do("GET", key))
if err != nil {
logs.DEBUGLOG("redis get:%s, error:%v", key, err)
}
return str, nil
}
// Set Redis String Value
func SetRedisString(key string, value interface{}) error {
redis_conn := rediswrapper.GetRedisPool().Get()
if redis_conn.Err() != nil {
logs.ERRORLOG("GetRedisPool Failed:%s", redis_conn.Err().Error())
return public.Err_NoRedis
}
defer redis_conn.Close()
valueStr, err := jsoniter.Marshal(value)
if err != nil {
logs.DEBUGLOG("jsoniter Marshal key:%s,value:%v error:%v", key, value, err)
return err
}
_, err = redis_conn.Do("SET", key, value, "EX", REDIS_TTL)
if err != nil {
logs.DEBUGLOG("Set Redis String key:%s,value:%s error:%v", key, valueStr, err)
return err
}
return nil
}
import (
"fmt"
"github.com/gomodule/redigo/redis"
"time"
)
var redisClient = new(kcommon.RedisClient)
func init() {
redisConf := kcommon.NewRedisConf("./conf/redis.conf")
if err := redisConf.Load(); err != nil {
glog.Errorf("redis init failed:err[%v]", err)
}
redisClient = kcommon.NewRedisCLinet(redisConf)
}
func NewRedisCLinet(conf *RedisConf) *RedisClient{
pool := newPool(fmt.Sprintf("%s:%d", conf.RedisAddr, conf.RedisPort), conf.RedisPassword)
if pool == nil {
glog.Warningf("new pool failed")
return nil
}
return &RedisClient{pool: pool}
}
func (rc *RedisClient) Set(key, value, expTime string) (err error) {
conn := rc.pool.Get() // 创建新连接
if conn == nil {
glog.Warningf("new connection failed")
err = common.ErrInternalError
return
}
defer conn.Close() // 关闭连接
// 执行增加的操作
if _, err = conn.Do("SET", key, value, "EX", expTime); err != nil {
glog.Warningf("redis set[%s:%d] failed: err[%v]", key, value, err)
return
}
return
}
// Get 查询redis
func (rc *RedisClient) Get(key string) (value string, err error) {
conn := rc.pool.Get() // 创建新连接
if conn == nil {
glog.Warningf("new connection failed")
err = common.ErrInternalError
return
}
defer conn.Close() // 关闭连接
// 执行增加的操作
if value, err = redis.String(conn.Do("GET", key)); err != nil {
glog.Warningf("redis get key[%s] failed: err[%v]", key, err)
return
}
return
}