package RedisUtil import ( "dsBaseRpc/Const/ErrorConst" "dsBaseRpc/Utils/ConfigUtil" "dsBaseRpc/Utils/LogUtil" garybudRedis "github.com/garyburd/redigo/redis" "github.com/go-redis/redis/v7" "time" ) var ( // 定义redis链接池 RedisClient *redis.Client //这个是为了使用OAuth2类库,引入的redis池,也是没办法之举~ Pool *garybudRedis.Pool ) func init() { // 从配置文件获取redis的ip以及db var redisHost = ConfigUtil.RedisIp + ":" + ConfigUtil.RedisPort Pool = &garybudRedis.Pool{ Dial: func() (garybudRedis.Conn, error) { conn, err := garybudRedis.Dial("tcp", redisHost) if err != nil { return nil, err } return conn, nil }, } //这个是以后项目中广泛使用的redis池 RedisClient = redis.NewClient(&redis.Options{ Addr: redisHost, // Redis地址 Password: "", // Redis账号 DB: 0, // Redis库 DialTimeout: 10 * time.Second, ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, PoolSize: 10, PoolTimeout: 30 * time.Second, IdleTimeout: time.Minute, IdleCheckFrequency: 100 * time.Millisecond, }) _, err := RedisClient.Ping().Result() if err == redis.Nil { LogUtil.Error(ErrorConst.CreateRedisError, "Redis异常") } else if err != nil { LogUtil.Error(ErrorConst.CreateRedisError, err.Error()) } } //======下面的代码由黄海增加于2020-02-18============================================================= /** 功能:设置指定键值的过期时间 作者:黄海 时间:2020-02-18 */ func DEL(key string) { RedisClient.Del(key) } /** 功能:设置一个STRING形式的缓存 作者:黄海 时间:2020-02-25 */ func SET(key string, value string, ttl time.Duration) { RedisClient.Set(key, value, ttl) } /** 功能:将指定的键值增加 */ func IncrBy(key string, value int64) int64 { c, _ := RedisClient.IncrBy(key, value).Result() return c } /** 功能:获取指定的KEY值 作者:黄海 时间:2020-02-25 */ func GET(key string) (string, error) { var r = RedisClient.Get(key) if r.Err() != nil { return "", r.Err() } else { return r.Result() } }