|
|
- package redis
-
- import (
- redisdb "github.com/gomodule/redigo/redis"
- )
-
- //hash取值, 返回interface{}
-
- func HGet(key string, field interface{}) (interface{}, error) {
- c := GetConn()
-
- reply, err := c.Do("HGET", key, field)
- CloseConn(c)
-
- return reply, err
- }
-
- //hash取值, 返回字符串
-
- func HGetString(key string, field interface{}) (string, error) {
- c := GetConn()
-
- ret, err := c.Do("HGET", key, field)
-
- reply := ""
- if err == nil {
- reply, err = redisdb.String(ret, err)
- }
- CloseConn(c)
- return reply, err
- }
-
- //hash取值,返回接口类型
-
- func HGetStringMap(key string, field interface{}) (map[string]string, error) {
- c := GetConn()
-
- ret, err := c.Do("HGET", key, field)
-
- reply := make(map[string]string)
-
- if err == nil {
- reply, err = redisdb.StringMap(ret, err)
- }
- CloseConn(c)
- return reply, err
-
- }
-
- //hash取值,返回[]byte
-
- func HGetBytes(key string, field interface{}) ([]byte, error) {
- c := GetConn()
-
- ret, err := c.Do("HGET", key, field)
-
- reply := make([]byte, 0)
-
- if err == nil {
- reply, err = redisdb.Bytes(ret, err)
- }
- CloseConn(c)
- return reply, err
-
- }
-
- //hash取所有值
-
- func HGetAll(key string) ([]map[string]string, error) {
- c := GetConn()
-
- ret, err := c.Do("HGETAll", key)
-
- reply := make([][]byte, 0)
-
- if err == nil {
- reply, err = redisdb.ByteSlices(ret, err)
- }
-
- var info map[string]string
- var all []map[string]string
-
- if len(reply) > 0 {
- for key, item := range reply {
- if key%2 == 0 { //只处理奇数位
- info = make(map[string]string)
- info[string(item)] = string(reply[key+1])
- all = append(all, info)
- }
-
- }
- }
-
- CloseConn(c)
- return all, err
-
- }
-
- //hash取所有值
-
- func HGetList(key string) ([]string, error) {
- c := GetConn()
-
- ret, err := c.Do("HGETAll", key)
-
- reply := make([][]byte, 0)
-
- if err == nil {
- reply, err = redisdb.ByteSlices(ret, err)
- }
-
- // var info map[string]string
- var all []string
-
- if len(reply) > 0 {
- for key, item := range reply {
- if (key+1)%2 == 0 { //只处理偶数位
- all = append(all, string(item))
- }
-
- }
- }
-
- CloseConn(c)
- return all, err
-
- }
-
- //hash取所有值
-
- func HGetAllItem(key string) (map[string]string, error) {
- c := GetConn()
-
- ret, err := c.Do("HGETAll", key)
-
- reply := make([][]byte, 0)
-
- if err == nil {
- reply, err = redisdb.ByteSlices(ret, err)
- }
-
- var info map[string]string = make(map[string]string)
-
- if len(reply) > 0 {
- for key, item := range reply {
- if key%2 == 0 { //只处理奇数位
- info[string(item)] = string(reply[key+1])
- }
-
- }
- }
-
- CloseConn(c)
- return info, err
-
- }
-
- /*
- * hash存值,
- * key 域
- * field 名
- * value 值
- * 2020/06/06
- */
- func HSet(key string, field, value interface{}) (int64, error) {
- c := GetConn()
-
- reply, err := c.Do("HSET", key, field, value)
- CloseConn(c)
-
- if err != nil {
- return 0, err
- } else {
- return redisdb.Int64(reply, nil)
- }
-
- }
-
- /*
- * hash存值,
- * key 域
- * field 名
- * value 值
- * 2020/06/06
- */
- func HIncrby(key string, field, value interface{}) (int64, error) {
- c := GetConn()
-
- reply, err := c.Do("hincrby", key, field, value)
- CloseConn(c)
-
- if err != nil {
- return 0, err
- } else {
- return redisdb.Int64(reply, nil)
- }
-
- }
-
- /*
- * 删除hash值
- */
- func HDel(key, field string) (int64, error) {
- c := GetConn()
-
- reply, err := c.Do("HDEL", key, field)
-
- CloseConn(c)
-
- if err != nil {
- return 0, err
- } else {
- return redisdb.Int64(reply, nil)
- }
- }
-
- /*
- * hash批量存值,
- * args (key,field,value,field,value,field,value...) 域,名,值,名,值,名,值 ...
- * 2020/06/06
- */
- func HMSet(args ...interface{}) (interface{}, error) {
- c := GetConn()
-
- reply, err := c.Do("HMSET", args...)
- CloseConn(c)
- return reply, err
- }
-
- /*
- * hash批量查询,
- * args (key,field,field,field...) 域,名,名,名 ...
- * 2020/06/06
- */
- func HMGet(args ...interface{}) (interface{}, error) {
- c := GetConn()
-
- reply, err := c.Do("HMGET", args...)
- CloseConn(c)
- return reply, err
- }
-
- /*
- * hash批量查询,
- * args (key,field,field,field...) 域,名,名,名 ...
- * 2020/06/06
- */
- func HMGetString(args ...interface{}) ([]string, error) {
- c := GetConn()
-
- reply, err := c.Do("HMGET", args...)
- CloseConn(c)
-
- list := make([]string, 0)
-
- if err == nil {
- list, err = redisdb.Strings(reply, err)
- }
-
- return list, err
- }
-
- /*
- * hash存值,
- * key 域
- * expire 过期时长
- * 2020/06/06
- */
- func HSetExpire(key string, expire int) (interface{}, error) {
- c := GetConn()
- reply, err := c.Do("expire", key, expire)
-
- CloseConn(c)
- return reply, err
- }
-
- /**
- * hash键是否存在
- * key 域
- * field 名
- */
- func HExists(key, field string) (int64, error) {
- c := GetConn()
-
- reply, err := c.Do("HEXISTS", key, field)
- CloseConn(c)
-
- if err != nil {
- return 0, err
- } else {
- return redisdb.Int64(reply, nil)
- }
- }
-
- /**
- * hash 键名
- */
- func HKeys(key string) ([]string, error) {
- c := GetConn()
-
- ret, err := c.Do("HKEYS", key)
-
- reply := make([]string, 0)
-
- if err == nil {
- reply, err = redisdb.Strings(ret, err)
- }
- CloseConn(c)
- return reply, err
-
- }
-
- /**
- * hash 键值
- */
- func HVals(key string) ([]string, error) {
- c := GetConn()
-
- ret, err := c.Do("HVALS", key)
-
- reply := make([]string, 0)
-
- if err == nil {
- reply, err = redisdb.Strings(ret, err)
- }
- CloseConn(c)
- return reply, err
-
- }
|