From 2af431f167ec77590723808bad2d09f0f3d15d05 Mon Sep 17 00:00:00 2001 From: 王家文 Date: Mon, 8 Apr 2024 14:48:06 +0800 Subject: [PATCH] doc:项目目录和功能文档 --- README.md | 22 ++++++++++++++++++++++ lx-util/lxbeego/log.go | 51 --------------------------------------------------- lx-util/lxbeego/request.go | 83 ----------------------------------------------------------------------------------- lx-util/lxredis/hash.go | 182 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- lx-util/lxredis/index.go | 304 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- util/util-lx/lxbeego/log.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ util/util-lx/lxbeego/request.go | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ util/util-lx/lxredis/hash.go | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ util/util-lx/lxredis/index.go | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 642 insertions(+), 620 deletions(-) create mode 100644 README.md delete mode 100644 lx-util/lxbeego/log.go delete mode 100644 lx-util/lxbeego/request.go delete mode 100644 lx-util/lxredis/hash.go delete mode 100644 lx-util/lxredis/index.go create mode 100644 util/util-lx/lxbeego/log.go create mode 100644 util/util-lx/lxbeego/request.go create mode 100644 util/util-lx/lxredis/hash.go create mode 100644 util/util-lx/lxredis/index.go diff --git a/README.md b/README.md new file mode 100644 index 0000000..520eef7 --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ + +## 项目目录结构 + +| 项目目录 | 目录说明 | +|-------------|----------| +| api-common | 公共模块 | +| conf | beego配置 | +| controllers | 控制器 | +| dto | 数据库存储对象 | +| models | 与客户端传输对象 | +| routers | 路由 | +| sdk | SDK | +| service | 游戏服务器逻辑 | +| sign | 签名 | +| util | 公共库 | +| lx-util | 公共库(李旭) | + +## 游戏和游戏功能列表 + +| 功能模块名 | 所属游戏 | 所属功能 | 负责人 | +|---------------|------|------|-----| +| ht-cardholder | 海滩 | 卡包卡牌 | 王家文 | diff --git a/lx-util/lxbeego/log.go b/lx-util/lxbeego/log.go deleted file mode 100644 index 4b81934..0000000 --- a/lx-util/lxbeego/log.go +++ /dev/null @@ -1,51 +0,0 @@ -package lxbeego - -import ( - "encoding/json" - "gitee.com/lxgow/lxconv" - "github.com/astaxie/beego" - "github.com/astaxie/beego/logs" - "strings" -) - -// beego logs 封装 - -// Inits 初始化设置 -func Inits(config map[string]string) (err error) { - - var newConfig = make(map[string]interface{}) - - for k, v := range config { - newConfig[k] = v - } - - if config["level"] != "" { - newConfig["level"] = lxconv.ToInt64(config["level"]) - } - - if config["maxdays"] != "" { - newConfig["maxdays"] = lxconv.ToInt64(config["maxdays"]) - } - - if config["maxlines"] != "" { - newConfig["maxlines"] = lxconv.ToInt64(config["maxlines"]) - } - - if config["rotate"] != "" { - newConfig["rotate"] = lxconv.ToBool(config["rotate"]) - } - - bdata, _ := json.Marshal(newConfig) - - err = logs.SetLogger(logs.AdapterFile, string(bdata)) - - if err != nil { - return err - } - - if strings.ToLower(config["dellogger"]) == "true" { - _ = beego.BeeLogger.DelLogger("console") - } - - return -} diff --git a/lx-util/lxbeego/request.go b/lx-util/lxbeego/request.go deleted file mode 100644 index a231ad8..0000000 --- a/lx-util/lxbeego/request.go +++ /dev/null @@ -1,83 +0,0 @@ -package lxbeego - -import ( - "crypto/tls" - "github.com/astaxie/beego/httplib" - "io/ioutil" - "strings" -) - -func PostBody(apiurl string, data map[string]interface{}) (content []byte, httpcode int, err error) { - - req := httplib.Post(apiurl) - - if strings.Contains(apiurl, "https://") { - req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) - } - - req.JSONBody(data) - - resp, err := req.Response() - - if err != nil { - return - } - - httpcode = resp.StatusCode - - content, err = ioutil.ReadAll(resp.Body) - - resp.Body.Close() - - return -} - -func PostParam(apiurl string, data map[string]string) (content []byte, httpcode int, err error) { - - req := httplib.Post(apiurl) - - if strings.Contains(apiurl, "https://") { - req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) - } - - for k, v := range data { - req.Param(k, v) - } - - resp, err := req.Response() - - if err != nil { - return - } - - httpcode = resp.StatusCode - - content, err = ioutil.ReadAll(resp.Body) - - resp.Body.Close() - - return -} - -func Get(apiurl string) (content []byte, httpcode int, err error) { - - req := httplib.Get(apiurl) - - if strings.Contains(apiurl, "https://") { - req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) - } - - resp, err := req.Response() - - if err != nil { - return - } - - httpcode = resp.StatusCode - - content, err = ioutil.ReadAll(resp.Body) - - resp.Body.Close() - - return -} diff --git a/lx-util/lxredis/hash.go b/lx-util/lxredis/hash.go deleted file mode 100644 index 26e5891..0000000 --- a/lx-util/lxredis/hash.go +++ /dev/null @@ -1,182 +0,0 @@ -package lxredis - -import redigo "github.com/garyburd/redigo/redis" - -// hash -// 创建时间:2023/12/14 14:21 -// 创建人:lixu - -// HashExists 存在的否 -func (con *LXredis) HashExists(minikey string) (isxists bool, err error) { - - var ( - nname string - nums int64 - ) - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - nums, err = redigo.Int64(redis.Do("HEXISTS", nname, minikey)) - if err != nil { - return - } - - if nums < 1 { - return - } - isxists = true - - return -} - -// HashSet 设置 -func (con *LXredis) HashSet(minikey string) (err error) { - - var ( - nname string - ) - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - _, err = redis.Do("HMSET", nname, minikey, con.Val) - - return -} - -// HashGet 获取 -func (con *LXredis) HashGet(minikey string) (content string, err error) { - - var ( - nname string - ) - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - content, err = redigo.String(redis.Do("HGET", nname, minikey)) - - return -} - -// HashGetAll 获取 -func (con *LXredis) HashGetAll() (content []string, err error) { - - var ( - nname string - ) - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - content, err = redigo.Strings(redis.Do("HGETALL", nname)) - - return -} - -// HashKeys 获取 -func (con *LXredis) HashKeys() (ks []string, err error) { - - var ( - nname string - ) - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - ks, err = redigo.Strings(redis.Do("HKEYS", nname)) - - return -} - -// HashDelete 删除 -func (con *LXredis) HashDelete(minikey string) (islock bool, err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - _, err = redis.Do("HDEL", nname, minikey) - - return -} diff --git a/lx-util/lxredis/index.go b/lx-util/lxredis/index.go deleted file mode 100644 index 34df3dd..0000000 --- a/lx-util/lxredis/index.go +++ /dev/null @@ -1,304 +0,0 @@ -package lxredis - -import ( - "fmt" - - redigo "github.com/garyburd/redigo/redis" -) - -var LXREDISPOOL *redigo.Pool -var LXREDISCONFIG MapRedisConfig //默认配置 - -type MapRedisConfig struct { - Host string `json:"host"` - Port string `json:"port"` - Pwd string `json:"pwd"` - Db string `json:"Db"` - Prefix string `json:"prefix"` -} - -type LXredis struct { - Name string `json:"name"` - Val string `json:"val"` - Db string `json:"db"` - Prefix string `json:"prefix"` -} - -func GetLxRedis() redigo.Conn { - return LXREDISPOOL.Get() -} - -// InitRedis 初始化Redis -func InitRedis(config MapRedisConfig) (err error) { - - LXREDISCONFIG = config - - pool_size := 20 - - LXREDISPOOL = redigo.NewPool(func() (redigo.Conn, error) { - c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%s", LXREDISCONFIG.Host, LXREDISCONFIG.Port)) - if err != nil { - return nil, err - } - if _, err := c.Do("AUTH", LXREDISCONFIG.Pwd); err != nil { - c.Close() - return nil, err - } - if _, err := c.Do("SELECT", LXREDISCONFIG.Db); err != nil { - c.Close() - return nil, err - } - - return c, nil - }, pool_size) - - return -} - -// IsExist 判断key是否存在 -func (con *LXredis) IsExist() (isexit bool, err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - isexit, err = redigo.Bool(redis.Do("EXISTS", nname)) - return -} - -// Set 设置redis字符串 -func (con *LXredis) Set() (err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - _, err = redis.Do("set", nname, con.Val) - - return -} - -// SetTime 设置redis字符串 加过期时间 -func (con *LXredis) SetTime(times int) (err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - _, err = redis.Do("set", nname, con.Val, "EX", times) - - return -} - -// GET 获取redis -func (con *LXredis) GET() (gstr string, err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - - } - - gstr, err = redigo.String(redis.Do("GET", nname)) - - return -} - -// INCR 自增 -func (con *LXredis) INCR() (nums int64, err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - nums, err = redigo.Int64(redis.Do("INCR", nname)) - - return -} - -// DELETE 删除 -func (con *LXredis) DELETE() (err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - is_key_exit, _ := redigo.Bool(redis.Do("EXISTS", nname)) - if is_key_exit { - _, err = redis.Do("DEL", nname) - if err != nil { - return - } - } - - return -} - -// EXPIRE 设置过期时间 -func (con *LXredis) EXPIRE(times int) (err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - _, err = redigo.Int(redis.Do("EXPIRE", nname, times)) - - return -} - -// TTL 查看过期时间 -func (con *LXredis) TTL() (ttl int, err error) { - - var nname string - - if con.Prefix != "" { - nname = con.Prefix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - if con.Db != "" { - if _, err = redis.Do("SELECT", con.Db); err != nil { - return - } - } - - ttl, err = redigo.Int(redis.Do("ttl", nname)) - - return -} - -// LOCK 排他锁 -func (con *LXredis) LOCK(ex int) (islock bool, err error) { - - var ( - nname string - ix = "lock::" - binf int - ) - - if ex < 1 { - ex = 1 - } - - if con.Prefix != "" { - nname = con.Prefix + ix + con.Name - } else { - nname = LXREDISCONFIG.Prefix + ix + con.Name - } - - redis := GetLxRedis() - - defer redis.Close() - - binf, err = redigo.Int(redis.Do("setnx", nname, "")) - - redis.Do("EXPIRE", nname, ex) - - if err == nil && binf == 0 { - islock = true - } - - return -} diff --git a/util/util-lx/lxbeego/log.go b/util/util-lx/lxbeego/log.go new file mode 100644 index 0000000..4b81934 --- /dev/null +++ b/util/util-lx/lxbeego/log.go @@ -0,0 +1,51 @@ +package lxbeego + +import ( + "encoding/json" + "gitee.com/lxgow/lxconv" + "github.com/astaxie/beego" + "github.com/astaxie/beego/logs" + "strings" +) + +// beego logs 封装 + +// Inits 初始化设置 +func Inits(config map[string]string) (err error) { + + var newConfig = make(map[string]interface{}) + + for k, v := range config { + newConfig[k] = v + } + + if config["level"] != "" { + newConfig["level"] = lxconv.ToInt64(config["level"]) + } + + if config["maxdays"] != "" { + newConfig["maxdays"] = lxconv.ToInt64(config["maxdays"]) + } + + if config["maxlines"] != "" { + newConfig["maxlines"] = lxconv.ToInt64(config["maxlines"]) + } + + if config["rotate"] != "" { + newConfig["rotate"] = lxconv.ToBool(config["rotate"]) + } + + bdata, _ := json.Marshal(newConfig) + + err = logs.SetLogger(logs.AdapterFile, string(bdata)) + + if err != nil { + return err + } + + if strings.ToLower(config["dellogger"]) == "true" { + _ = beego.BeeLogger.DelLogger("console") + } + + return +} diff --git a/util/util-lx/lxbeego/request.go b/util/util-lx/lxbeego/request.go new file mode 100644 index 0000000..a231ad8 --- /dev/null +++ b/util/util-lx/lxbeego/request.go @@ -0,0 +1,83 @@ +package lxbeego + +import ( + "crypto/tls" + "github.com/astaxie/beego/httplib" + "io/ioutil" + "strings" +) + +func PostBody(apiurl string, data map[string]interface{}) (content []byte, httpcode int, err error) { + + req := httplib.Post(apiurl) + + if strings.Contains(apiurl, "https://") { + req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) + } + + req.JSONBody(data) + + resp, err := req.Response() + + if err != nil { + return + } + + httpcode = resp.StatusCode + + content, err = ioutil.ReadAll(resp.Body) + + resp.Body.Close() + + return +} + +func PostParam(apiurl string, data map[string]string) (content []byte, httpcode int, err error) { + + req := httplib.Post(apiurl) + + if strings.Contains(apiurl, "https://") { + req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) + } + + for k, v := range data { + req.Param(k, v) + } + + resp, err := req.Response() + + if err != nil { + return + } + + httpcode = resp.StatusCode + + content, err = ioutil.ReadAll(resp.Body) + + resp.Body.Close() + + return +} + +func Get(apiurl string) (content []byte, httpcode int, err error) { + + req := httplib.Get(apiurl) + + if strings.Contains(apiurl, "https://") { + req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) + } + + resp, err := req.Response() + + if err != nil { + return + } + + httpcode = resp.StatusCode + + content, err = ioutil.ReadAll(resp.Body) + + resp.Body.Close() + + return +} diff --git a/util/util-lx/lxredis/hash.go b/util/util-lx/lxredis/hash.go new file mode 100644 index 0000000..26e5891 --- /dev/null +++ b/util/util-lx/lxredis/hash.go @@ -0,0 +1,182 @@ +package lxredis + +import redigo "github.com/garyburd/redigo/redis" + +// hash +// 创建时间:2023/12/14 14:21 +// 创建人:lixu + +// HashExists 存在的否 +func (con *LXredis) HashExists(minikey string) (isxists bool, err error) { + + var ( + nname string + nums int64 + ) + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + nums, err = redigo.Int64(redis.Do("HEXISTS", nname, minikey)) + if err != nil { + return + } + + if nums < 1 { + return + } + isxists = true + + return +} + +// HashSet 设置 +func (con *LXredis) HashSet(minikey string) (err error) { + + var ( + nname string + ) + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + _, err = redis.Do("HMSET", nname, minikey, con.Val) + + return +} + +// HashGet 获取 +func (con *LXredis) HashGet(minikey string) (content string, err error) { + + var ( + nname string + ) + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + content, err = redigo.String(redis.Do("HGET", nname, minikey)) + + return +} + +// HashGetAll 获取 +func (con *LXredis) HashGetAll() (content []string, err error) { + + var ( + nname string + ) + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + content, err = redigo.Strings(redis.Do("HGETALL", nname)) + + return +} + +// HashKeys 获取 +func (con *LXredis) HashKeys() (ks []string, err error) { + + var ( + nname string + ) + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + ks, err = redigo.Strings(redis.Do("HKEYS", nname)) + + return +} + +// HashDelete 删除 +func (con *LXredis) HashDelete(minikey string) (islock bool, err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + _, err = redis.Do("HDEL", nname, minikey) + + return +} diff --git a/util/util-lx/lxredis/index.go b/util/util-lx/lxredis/index.go new file mode 100644 index 0000000..34df3dd --- /dev/null +++ b/util/util-lx/lxredis/index.go @@ -0,0 +1,304 @@ +package lxredis + +import ( + "fmt" + + redigo "github.com/garyburd/redigo/redis" +) + +var LXREDISPOOL *redigo.Pool +var LXREDISCONFIG MapRedisConfig //默认配置 + +type MapRedisConfig struct { + Host string `json:"host"` + Port string `json:"port"` + Pwd string `json:"pwd"` + Db string `json:"Db"` + Prefix string `json:"prefix"` +} + +type LXredis struct { + Name string `json:"name"` + Val string `json:"val"` + Db string `json:"db"` + Prefix string `json:"prefix"` +} + +func GetLxRedis() redigo.Conn { + return LXREDISPOOL.Get() +} + +// InitRedis 初始化Redis +func InitRedis(config MapRedisConfig) (err error) { + + LXREDISCONFIG = config + + pool_size := 20 + + LXREDISPOOL = redigo.NewPool(func() (redigo.Conn, error) { + c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%s", LXREDISCONFIG.Host, LXREDISCONFIG.Port)) + if err != nil { + return nil, err + } + if _, err := c.Do("AUTH", LXREDISCONFIG.Pwd); err != nil { + c.Close() + return nil, err + } + if _, err := c.Do("SELECT", LXREDISCONFIG.Db); err != nil { + c.Close() + return nil, err + } + + return c, nil + }, pool_size) + + return +} + +// IsExist 判断key是否存在 +func (con *LXredis) IsExist() (isexit bool, err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + isexit, err = redigo.Bool(redis.Do("EXISTS", nname)) + return +} + +// Set 设置redis字符串 +func (con *LXredis) Set() (err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + _, err = redis.Do("set", nname, con.Val) + + return +} + +// SetTime 设置redis字符串 加过期时间 +func (con *LXredis) SetTime(times int) (err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + _, err = redis.Do("set", nname, con.Val, "EX", times) + + return +} + +// GET 获取redis +func (con *LXredis) GET() (gstr string, err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + + } + + gstr, err = redigo.String(redis.Do("GET", nname)) + + return +} + +// INCR 自增 +func (con *LXredis) INCR() (nums int64, err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + nums, err = redigo.Int64(redis.Do("INCR", nname)) + + return +} + +// DELETE 删除 +func (con *LXredis) DELETE() (err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + is_key_exit, _ := redigo.Bool(redis.Do("EXISTS", nname)) + if is_key_exit { + _, err = redis.Do("DEL", nname) + if err != nil { + return + } + } + + return +} + +// EXPIRE 设置过期时间 +func (con *LXredis) EXPIRE(times int) (err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + _, err = redigo.Int(redis.Do("EXPIRE", nname, times)) + + return +} + +// TTL 查看过期时间 +func (con *LXredis) TTL() (ttl int, err error) { + + var nname string + + if con.Prefix != "" { + nname = con.Prefix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + if con.Db != "" { + if _, err = redis.Do("SELECT", con.Db); err != nil { + return + } + } + + ttl, err = redigo.Int(redis.Do("ttl", nname)) + + return +} + +// LOCK 排他锁 +func (con *LXredis) LOCK(ex int) (islock bool, err error) { + + var ( + nname string + ix = "lock::" + binf int + ) + + if ex < 1 { + ex = 1 + } + + if con.Prefix != "" { + nname = con.Prefix + ix + con.Name + } else { + nname = LXREDISCONFIG.Prefix + ix + con.Name + } + + redis := GetLxRedis() + + defer redis.Close() + + binf, err = redigo.Int(redis.Do("setnx", nname, "")) + + redis.Do("EXPIRE", nname, ex) + + if err == nil && binf == 0 { + islock = true + } + + return +} -- libgit2 0.21.0