Go连接redis代码记录

// 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
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心码农1号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值