hash.go 2.73 KB
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
}