package RedisUtil import ( "dsBaseRpc/Const/ErrorConst" "dsBaseRpc/Utils/ConfigUtil" "dsBaseRpc/Utils/LogUtil" "fmt" "github.com/go-redis/redis/v7" "time" ) var ( // 定义redis链接池 RedisClient *redis.Client ) func init() { // 从配置文件获取redis的ip以及db var redisHost = ConfigUtil.RedisIp + ":" + ConfigUtil.RedisPort //这个是以后项目中广泛使用的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, err := RedisClient.IncrBy(key, value).Result() if err != nil { fmt.Println(err.Error()) } 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() } } /** 功能:判断指定键值是否存在 作者:黄海 时间:2021-09-16 */ func Exist(key string) (bool, error) { _, err := RedisClient.Get(key).Result() if err == redis.Nil { return false, nil } return true, nil }