redis操作
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
2.1 KiB

package redis
import (
// "errors"
redisdb "github.com/gomodule/redigo/redis"
)
//hash取值, 返回interface{}
func HGet(key string, field interface{}) (interface{}, error) {
c := pool.Get()
defer c.Close()
return c.Do("HGET", key, field)
}
//hash取值, 返回字符串
func HGetString(key string, field interface{}) (string, error) {
c := pool.Get()
defer c.Close()
ret, err := c.Do("HGET", key, field)
if err != nil {
return "", err
}
return redisdb.String(ret, err)
}
//hash取值,返回接口类型
func HGetStringMap(key string, field interface{}) (map[string]string, error) {
c := pool.Get()
defer c.Close()
ret, err := c.Do("HGET", key, field)
if err != nil {
return ret.(map[string]string), err
}
return redisdb.StringMap(ret, err)
}
//hash取值,返回[]byte
func HGetBytes(key string, field interface{}) ([]byte, error) {
c := pool.Get()
defer c.Close()
ret, err := c.Do("HGET", key, field)
if err != nil {
return nil, err
}
return redisdb.Bytes(ret, err)
}
//hash取所有值
func HGetAll(key string) ([][]byte, error) {
c := pool.Get()
defer c.Close()
ret, err := c.Do("HGETAll", key)
if err != nil {
return nil, err
}
// return ret, err
// return redisdb.MultiBulk(ret, err)
return redisdb.ByteSlices(ret, err)
}
/*
* hash存值,
* key 域
* field 名
* value 值
* 2020/06/06
*/
func HSet(key string, field, value interface{}) (interface{}, error) {
c := pool.Get()
defer c.Close()
reply, err := c.Do("HSET", key, field, value)
return reply, err
}
/*
* 删除hash值
*/
func HDel(key,field string) error{
c := pool.Get()
defer c.Close()
_, err := c.Do("HDEL", key, field)
return err
}
/*
* hash批量存值,
* args (key,field,value,field,value,field,value...) 域,名,值,名,值,名,值 ...
* 2020/06/06
*/
func HMSet(args ...interface{}) (interface{}, error) {
c := pool.Get()
defer c.Close()
reply, err := c.Do("HMSET", args...)
return reply, err
}
/*
* hash存值,
* key 域
* expire 过期时长
* 2020/06/06
*/
func HSetExpire(key string, expire int) (interface{}, error) {
c := pool.Get()
defer c.Close()
return c.Do("expire", key, expire)
}