|
|
- package redis
-
- import (
- "errors"
- "git.tetele.net/tgo/helper"
- redisdb "github.com/gomodule/redigo/redis"
- )
-
- //取值
- func GetString(key string) (string, error) {
- c := GetConn()
- str, err := redisdb.String(c.Do("get", key))
- CloseConn(c)
- return str, err
- }
-
- /*
- * 存值,
- * args,范围(key, value)或(key, value,expire)
- * 2020/06/06
- */
- func Set(args ...interface{}) (string, error) {
- c := GetConn()
- if len(args) < 2 {
- return "", errors.New("参数错误,至少需两个参数")
- }
- var err error
- var reply interface{}
- if len(args) > 2 && helper.ToInt(args[2]) > 0 {
- reply, err = c.Do("SET", args[0], args[1], "EX", args[2]) //设置过期时间
- } else {
- reply, err = c.Do("SET", args[0], args[1])
- }
-
- CloseConn(c)
-
- if err != nil {
- return "", err
- }
- ret, err := redisdb.String(reply, err)
- return ret, err
- }
-
- /**
- * 删除key
- */
- func Del(key string) (int64, error) {
- c := GetConn()
- var err error
- var reply interface{}
- reply, err = c.Do("DEL", key)
-
- CloseConn(c)
-
- if err != nil {
- return 0, err
- }
- ret, err := redisdb.Int64(reply, err)
- return ret, err
- }
-
- /**
- * 设锁
- * 2020/01/15
- */
- func SetNx(args ...interface{}) (int64, error) {
- c := GetConn()
- if len(args) < 2 {
- return 0, errors.New("参数错误,至少需两个参数")
- }
- var err error
- var result interface{}
- if len(args) > 2 && helper.ToInt(args[2]) > 0 {
- result, err = c.Do("SET", args[0],args[1],"EX",args[2],"NX") //设置过期时间
- } else {
- result, err = c.Do("SETNX", args[0], args[1])
- }
-
- if err != nil {
- return 0, err
- }
-
- CloseConn(c)
-
- if helper.ToStr(result) == "OK"{
- return 1, nil
- }
-
- return 0,nil
- }
-
- /**
- * key是否存在
- */
- func Exists(key string) (int64, error) {
- c := GetConn()
- var err error
- var reply interface{}
- reply, err = c.Do("Exists", key)
-
- CloseConn(c)
-
- if err != nil {
- return 0, err
- }
- ret, err := redisdb.Int64(reply, err)
- return ret, err
- }
|