package redis import ( "errors" redisdb "github.com/gomodule/redigo/redis" ) //取值 func Get(key string) (string, error) { c := pool.Get() defer c.Close() return redisdb.String(c.Do("get", key)) } /* * 存值, * args,范围(key, value)或(key, value,expire) * 2020/06/06 */ func Set(args ...interface{}) (interface{}, error) { c := pool.Get() defer c.Close() if len(args) < 2 { return nil, errors.New("参数错误,至少需两个参数") } var err error var reply interface{} if len(args) > 2 { reply, err = c.Do("SET", args[0], args[1], "EX", args[2]) //设置过期时间 } else { reply, err = c.Do("SET", args[0], args[1]) } return reply, err } /** * 删除key */ func Del(key string) (int,error){ c := pool.Get() defer c.Close() var err error var reply interface{} reply, err = c.Do("DEL", key) return redisdb.Int(reply, err) } /** * 设锁 * 2020/01/15 */ func SetLock(args ...interface{}) (bool,error){ c := pool.Get() defer c.Close() if len(args) < 2 { return false, errors.New("参数错误,至少需两个参数") } var err error var result interface{} if len(args) > 2 { result, err = c.Do("SETNX", args[0], args[1], "EX", args[2]) //设置过期时间 } else { result, err = c.Do("SETNX", args[0], args[1]) } if err != nil{ return false,err } if result.(int) == 1{ return true, nil } else{ return false, nil } }