Documentation ¶
Overview ¶
从官方客户端派生出来的客户端,支持连接池,使用习惯与大多数客户端保持一致。
继承官方连接方式。 支持连接池。包括连接过期,大小限制,超时等基本功能。 支持 json 自动编码 支持返回值类型转换
示例:
pool, err := gossdb.NewPool(&gossdb.Config{ Host: "127.0.0.1", Port: 6380, MinPoolSize: 5, MaxPoolSize: 50, AcquireIncrement: 5, }) if err != nil { log.Fatal(err) return } s, err := pool.NewClient() if err != nil { log.Println(idx, err.Error()) return } defer s.Close() s.Set("test","hello world.") re, err := s.Get("test") if err != nil { log.Println(err) } else { log.Println(re, "is get") }
Index ¶
- Constants
- Variables
- func ToNum(bs []byte) int
- type Client
- func (c *Client) Close() error
- func (c *Client) DbSize() (re int, err error)
- func (c *Client) Del(key string) error
- func (c *Client) Do(args ...interface{}) ([]string, error)
- func (c *Client) Exists(key string) (re bool, err error)
- func (c *Client) Expire(key string, ttl int64) (re bool, err error)
- func (c *Client) Get(key string) (Value, error)
- func (c *Client) Getset(key string, val interface{}) (Value, error)
- func (c *Client) Hclear(setName string) (err error)
- func (c *Client) Hdel(setName, key string) (err error)
- func (c *Client) Hexists(setName, key string) (re bool, err error)
- func (c *Client) Hget(setName, key string) (value Value, err error)
- func (c *Client) HgetAll(setName string) (val map[string]Value, err error)
- func (c *Client) Hincr(setName, key string, num int64) (val int64, err error)
- func (c *Client) Hkeys(setName, keyStart, keyEnd string, limit int64) ([]string, error)
- func (c *Client) Hlist(nameStart, nameEnd string, limit int64) ([]string, error)
- func (c *Client) Hrscan(setName string, keyStart, keyEnd string, limit int64) (map[string]Value, error)
- func (c *Client) HrscanArray(setName string, keyStart, keyEnd string, limit int64, reverse ...bool) ([]string, []Value, error)
- func (c *Client) Hscan(setName string, keyStart, keyEnd string, limit int64, reverse ...bool) (map[string]Value, error)
- func (c *Client) HscanArray(setName string, keyStart, keyEnd string, limit int64, reverse ...bool) ([]string, []Value, error)
- func (c *Client) Hset(setName, key string, value interface{}) (err error)
- func (c *Client) Hsize(setName string) (val int64, err error)
- func (c *Client) Incr(key string, num int64) (val int64, err error)
- func (c *Client) Info() (re []string, err error)
- func (c *Client) Keys(keyStart, keyEnd string, limit int64) ([]string, error)
- func (c *Client) MultiDel(key ...string) (err error)
- func (c *Client) MultiGet(key ...string) (val map[string]Value, err error)
- func (c *Client) MultiGetArray(key []string) (val map[string]Value, err error)
- func (c *Client) MultiGetSlice(key ...string) (keys []string, values []Value, err error)
- func (c *Client) MultiGetSliceArray(key []string) (keys []string, values []Value, err error)
- func (c *Client) MultiHdel(setName string, key ...string) (err error)
- func (c *Client) MultiHdelArray(setName string, key []string) (err error)
- func (c *Client) MultiHget(setName string, key ...string) (val map[string]Value, err error)
- func (c *Client) MultiHgetAll(setName string) (val map[string]Value, err error)
- func (c *Client) MultiHgetAllSlice(setName string) (keys []string, values []Value, err error)
- func (c *Client) MultiHgetArray(setName string, key []string) (val map[string]Value, err error)
- func (c *Client) MultiHgetSlice(setName string, key ...string) (keys []string, values []Value, err error)
- func (c *Client) MultiHgetSliceArray(setName string, key []string) (keys []string, values []Value, err error)
- func (c *Client) MultiHset(setName string, kvs map[string]interface{}) (err error)
- func (c *Client) MultiSet(kvs map[string]interface{}) (err error)
- func (c *Client) MultiZdel(setName string, key ...string) (err error)
- func (c *Client) MultiZget(setName string, key ...string) (val map[string]int64, err error)
- func (c *Client) MultiZgetArray(setName string, key []string) (val map[string]int64, err error)
- func (c *Client) MultiZgetSlice(setName string, key ...string) (keys []string, scores []int64, err error)
- func (c *Client) MultiZgetSliceArray(setName string, key []string) (keys []string, scores []int64, err error)
- func (c *Client) MultiZset(setName string, kvs map[string]int64) (err error)
- func (c *Client) Ping() bool
- func (c *Client) Qback(key string) (Value, error)
- func (c *Client) Qclear(name string) (err error)
- func (c *Client) Qfront(key string) (Value, error)
- func (c *Client) Qget(key string, index int64) (Value, error)
- func (c *Client) Qlist(nameStart, nameEnd string, limit int64) ([]string, error)
- func (c *Client) Qpop(name string, reverse ...bool) (v Value, err error)
- func (c *Client) QpopArray(name string, size int64, reverse ...bool) (v []Value, err error)
- func (c *Client) Qpop_back(name string) (v Value, err error)
- func (c *Client) Qpop_back_array(name string, size int64) (v []Value, err error)
- func (c *Client) Qpop_front(name string) (v Value, err error)
- func (c *Client) Qpop_front_array(name string, size int64) (v []Value, err error)
- func (c *Client) Qpush(name string, value ...interface{}) (size int64, err error)
- func (c *Client) Qpush_array(name string, value []interface{}) (size int64, err error)
- func (c *Client) Qpush_back(name string, value ...interface{}) (size int64, err error)
- func (c *Client) Qpush_back_array(name string, value []interface{}) (size int64, err error)
- func (c *Client) Qpush_front(name string, value ...interface{}) (size int64, err error)
- func (c *Client) Qpush_front_array(name string, value []interface{}) (size int64, err error)
- func (c *Client) Qrange(name string, offset, limit int) (v []Value, err error)
- func (c *Client) Qrlist(nameStart, nameEnd string, limit int64) ([]string, error)
- func (c *Client) Qset(key string, index int64, val interface{}) (err error)
- func (c *Client) Qsize(name string) (size int64, err error)
- func (c *Client) Qslice(name string, begin, end int) (v []Value, err error)
- func (c *Client) Qtrim(name string, size int, reverse ...bool) (delSize int64, err error)
- func (c *Client) Qtrim_back(name string, size int) (delSize int64, err error)
- func (c *Client) Qtrim_front(name string, size int) (delSize int64, err error)
- func (c *Client) Rkeys(keyStart, keyEnd string, limit int64) ([]string, error)
- func (c *Client) Rscan(keyStart, keyEnd string, limit int64) (map[string]Value, error)
- func (c *Client) Scan(keyStart, keyEnd string, limit int64) (map[string]Value, error)
- func (c *Client) Set(key string, val interface{}, ttl ...int64) (err error)
- func (c *Client) Setnx(key string, val interface{}) (Value, error)
- func (c *Client) Strlen(key string) (int64, error)
- func (c *Client) Substr(key string, start int64, size ...int64) (val string, err error)
- func (c *Client) Ttl(key string) (ttl int64, err error)
- func (c *Client) Zavg(setName string, scoreStart, scoreEnd interface{}) (val int64, err error)
- func (c *Client) Zclear(setName string) (err error)
- func (c *Client) Zcount(setName string, start, end interface{}) (count int64, err error)
- func (c *Client) Zdel(setName, key string) (err error)
- func (c *Client) Zexists(setName, key string) (re bool, err error)
- func (c *Client) Zget(setName, key string) (score int64, err error)
- func (c *Client) Zincr(setName string, key string, num int64) (int64, error)
- func (c *Client) Zkeys(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, err error)
- func (c *Client) Zlist(nameStart, nameEnd string, limit int64) ([]string, error)
- func (c *Client) Zpopback(setName string, limit int64) (val map[string]int64, err error)
- func (c *Client) Zpopfront(setName string, limit int64) (val map[string]int64, err error)
- func (c *Client) Zrange(setName string, offset, limit int64) (val map[string]int64, err error)
- func (c *Client) Zrange_slice(setName string, offset, limit int64) (key []string, val []int64, err error)
- func (c *Client) Zrank(setName, key string) (val int64, err error)
- func (c *Client) Zremrangebyrank(setName string, start, end int64) (err error)
- func (c *Client) Zremrangebyscore(setName string, start, end int64) (err error)
- func (c *Client) Zrrange(setName string, offset, limit int64) (val map[string]int64, err error)
- func (c *Client) Zrrange_slice(setName string, offset, limit int64) (key []string, val []int64, err error)
- func (c *Client) Zrrank(setName, key string) (val int64, err error)
- func (c *Client) Zrscan(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, scores []int64, err error)
- func (c *Client) Zscan(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, scores []int64, err error)
- func (c *Client) Zset(setName, key string, score int64) (err error)
- func (c *Client) Zsize(name string) (val int64, err error)
- func (c *Client) Zsum(setName string, scoreStart, scoreEnd interface{}) (val int64, err error)
- type Connectors
- type SSDBClient
- func (s *SSDBClient) Close() error
- func (s *SSDBClient) Do(args ...interface{}) ([]string, error)
- func (s *SSDBClient) IsOpen() bool
- func (s *SSDBClient) Ping() bool
- func (s *SSDBClient) Recv() (resp []string, err error)
- func (s *SSDBClient) Send(args ...interface{}) error
- func (s *SSDBClient) Start() error
- type Value
- func (v Value) As(value interface{}) (err error)
- func (v Value) Bool() bool
- func (v Value) Byte() byte
- func (v Value) Bytes() []byte
- func (v Value) Duration() time.Duration
- func (v Value) Float32() float32
- func (v Value) Float64() float64
- func (v Value) Int() int
- func (v Value) Int16() int16
- func (v Value) Int32() int32
- func (v Value) Int64() int64
- func (v Value) Int8() int8
- func (v Value) IsEmpty() bool
- func (v Value) String() string
- func (v Value) Time() time.Time
- func (v Value) UInt() uint
- func (v Value) UInt16() uint16
- func (v Value) UInt32() uint32
- func (v Value) UInt64() uint64
- func (v Value) UInt8() uint8
Constants ¶
const ( OK string = "ok" NotFound string = "not_found" )
const ( ENDN = '\n' ENDR = '\r' )
Variables ¶
var ( //是否启动编码,启用后会对struct 等复杂结构 进行 json 编码,以支持更多类型 Encoding = false )
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
可回收的连接,支持连接池。 非协程安全,多协程请使用多个连接。
func (*Client) Exists ¶
查询指定 key 是否存在
key 要查询的 key 返回 re,如果当前 key 不存在返回 false 返回 err,执行的错误,操作成功返回 nil
func (*Client) Expire ¶
设置过期
key 要设置过期的 key ttl 存活时间(秒) 返回 re,设置是否成功,如果当前 key 不存在返回 false 返回 err,执行的错误,操作成功返回 nil
func (*Client) Getset ¶
更新 key 对应的 value, 并返回更新前的旧的 value.
key 键值 val 存贮的 value 值,val只支持基本的类型,如果要支持复杂的类型,需要开启连接池的 Encoding 选项 返回 一个 Value,可以方便的向其它类型转换.如果 key 不存在则返回 "", 否则返回 key 对应的值内容. 返回 一个可能的错误,操作成功返回 nil
func (*Client) Hdel ¶
删除 hashmap 中的指定 key,不能通过返回值来判断被删除的 key 是否存在.
setName hashmap 的名字 key hashmap 的 key 返回 err,执行的错误
func (*Client) Hexists ¶
判断指定的 key 是否存在于 hashmap 中.
setName hashmap 的名字 key hashmap 的 key 返回 re,如果当前 key 不存在返回 false 返回 err,执行的错误,操作成功返回 nil
func (*Client) Hget ¶
获取 hashmap 中指定 key 的值内容.
setName hashmap 的名字 key hashmap 的 key 返回 value key 的值 返回 err,执行的错误
func (*Client) HgetAll ¶
批量获取 hashmap 中全部 对应的权重值.
setName - hashmap 的名字. 返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) Hincr ¶
设置 hashmap 中指定 key 对应的值增加 num. 参数 num 可以为负数.
setName - hashmap 的名字. key 键值 num 增加的值 返回 val,整数,增加 num 后的新值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Hkeys ¶
列出 hashmap 中处于区间 (keyStart, keyEnd] 的 key 列表.
name - hashmap 的名字. keyStart - 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd - 返回的结束 key(包含), 空字符串表示 +inf. limit - 最多返回这么多个元素. 返回 包含名字的数组 返回 err,执行的错误,操作成功返回 nil
func (*Client) Hlist ¶
列出名字处于区间 (name_start, name_end] 的 hashmap. ("", ""] 表示整个区间.
nameStart - 返回的起始 key(不包含), 空字符串表示 -inf. nameEnd - 返回的结束 key(包含), 空字符串表示 +inf. limit - 最多返回这么多个元素. 返回 包含名字的数组 返回 err,执行的错误,操作成功返回 nil
func (*Client) Hrscan ¶
func (c *Client) Hrscan(setName string, keyStart, keyEnd string, limit int64) (map[string]Value, error)
列出 hashmap 中处于区间 (key_start, key_end] 的 key-value 列表. ("", ""] 表示整个区间.
setName - hashmap 的名字. keyStart - 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd - 返回的结束 key(包含), 空字符串表示 +inf. limit - 最多返回这么多个元素. 返回包含 key-value 的关联字典. 返回 err,执行的错误,操作成功返回 nil
func (*Client) HrscanArray ¶
func (c *Client) HrscanArray(setName string, keyStart, keyEnd string, limit int64, reverse ...bool) ([]string, []Value, error)
列出 hashmap 中处于区间 (key_start, key_end] 的 key,value 列表. ("", ""] 表示整个区间.
setName - hashmap 的名字. keyStart - 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd - 返回的结束 key(包含), 空字符串表示 +inf. limit - 最多返回这么多个元素. 返回包含 key-value 的关联字典. 返回 err,执行的错误,操作成功返回 nil
func (*Client) Hscan ¶
func (c *Client) Hscan(setName string, keyStart, keyEnd string, limit int64, reverse ...bool) (map[string]Value, error)
列出 hashmap 中处于区间 (key_start, key_end] 的 key-value 列表. ("", ""] 表示整个区间.
setName - hashmap 的名字. keyStart - 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd - 返回的结束 key(包含), 空字符串表示 +inf. limit - 最多返回这么多个元素. 返回包含 key-value 的关联字典. 返回 err,执行的错误,操作成功返回 nil
func (*Client) HscanArray ¶
func (c *Client) HscanArray(setName string, keyStart, keyEnd string, limit int64, reverse ...bool) ([]string, []Value, error)
列出 hashmap 中处于区间 (key_start, key_end] 的 key,value 列表. ("", ""] 表示整个区间.
setName - hashmap 的名字. keyStart - 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd - 返回的结束 key(包含), 空字符串表示 +inf. limit - 最多返回这么多个元素. 返回包含 key-value 的关联字典. 返回 err,执行的错误,操作成功返回 nil
func (*Client) Hset ¶
设置 hashmap 中指定 key 对应的值内容.
setName hashmap 的名字 key hashmap 的 key value key 的值 返回 err,执行的错误
func (*Client) Hsize ¶
返回 hashmap 中的元素个数.
setName - hashmap 的名字. 返回 val,整数,增加 num 后的新值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Incr ¶
使 key 对应的值增加 num. 参数 num 可以为负数.
key 键值 num 增加的值 返回 val,整数,增加 num 后的新值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Keys ¶
列出处于区间 (key_start, key_end] 的 key 列表.("", ""] 表示整个区间.
keyStart int 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd int 返回的结束 key(包含), 空字符串表示 +inf. limit int 最多返回这么多个元素. 返回 返回包含 key 的数组. 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiGet ¶
批量获取一批 key 对应的值内容.
key,要获取的 key,可以为多个 返回 val,一个包含返回的 map 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiGetArray ¶
批量获取一批 key 对应的值内容.(输入分片),MultiGet的别名
key,要获取的 key,可以为多个 返回 val,一个包含返回的 map 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiGetSlice ¶
批量获取一批 key 对应的值内容.
key,要获取的 key,可以为多个 返回 keys和value分片 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiGetSliceArray ¶
批量获取一批 key 对应的值内容.(输入分片),MultiGetSlice的别名
key,要获取的 key,可以为多个 返回 keys和value分片 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiHdel ¶
批量删除 hashmap 中的 key.
setName - hashmap 的名字. keys - 包含 key 的数组. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHdelArray ¶
批量删除 hashmap 中的 key.(输入分片)
setName - hashmap 的名字. keys - 包含 key 的数组. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHget ¶
批量获取 hashmap 中多个 key 对应的权重值.
setName - hashmap 的名字. keys - 包含 key 的数组 . 返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHgetAll ¶
批量获取 hashmap 中全部 对应的权重值.
setName - hashmap 的名字. keys - 包含 key 的数组 . 返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHgetAllSlice ¶
批量获取 hashmap 中全部 对应的权重值.
setName - hashmap 的名字. 返回 包含 key和value 的有序数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHgetArray ¶
批量获取 hashmap 中多个 key 对应的权重值.(输入分片)
setName - hashmap 的名字. keys - 包含 key 的数组 . 返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHgetSlice ¶
func (c *Client) MultiHgetSlice(setName string, key ...string) (keys []string, values []Value, err error)
批量获取 hashmap 中多个 key 对应的权重值.
setName - hashmap 的名字. keys - 包含 key 的数组 . 返回 包含 key和value 的有序数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHgetSliceArray ¶
func (c *Client) MultiHgetSliceArray(setName string, key []string) (keys []string, values []Value, err error)
批量获取 hashmap 中多个 key 对应的权重值.(输入分片)
setName - hashmap 的名字. keys - 包含 key 的数组 . 返回 包含 key和value 的有序数组, 如果某个 key 不存在, 则它不会出现在返回数组中. 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiHset ¶
批量设置 hashmap 中的 key-value.
setName - hashmap 的名字. kvs - 包含 key-value 的关联数组 . 返回 err,执行的错误,操作成功返回 nil
func (*Client) MultiZdel ¶
批量删除 zset 中的 key-score.
setName zset名称 key 要删除key的列表,支持多个key 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiZget ¶
批量获取 zset 中的 key-score.
setName zset名称 key 要获取key的列表,支持多个key 返回 val 包含 key-score 的map 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiZgetArray ¶
批量获取 zset 中的 key-score.
setName zset名称 key 要获取key的slice 返回 val 包含 key-score 的map 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiZgetSlice ¶
func (c *Client) MultiZgetSlice(setName string, key ...string) (keys []string, scores []int64, err error)
批量获取 zset 中的 key-score.
setName zset名称 key 要获取key的列表,支持多个key 返回 keys 包含 key的slice 返回 scores 包含 key对应权重的slice 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiZgetSliceArray ¶
func (c *Client) MultiZgetSliceArray(setName string, key []string) (keys []string, scores []int64, err error)
批量获取 zset 中的 key-score.
setName zset名称 key 要获取key的slice 返回 keys 包含 key的slice 返回 scores 包含 key对应权重的slice 返回 err,可能的错误,操作成功返回 nil
func (*Client) MultiZset ¶
批量设置 zset 中的 key-score.
setName zset名称 kvs 包含 key-score 的map 返回 err,可能的错误,操作成功返回 nil
func (*Client) Qget ¶
返回指定位置的元素. 0 表示第一个元素, 1 是第二个 ... -1 是最后一个.
key 队列的名字 index 指定的位置,可传负数. 返回 val,返回的值. 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qlist ¶
列出名字处于区间 (name_start, name_end] 的 queue/list.
name_start 返回的起始名字(不包含), 空字符串表示 -inf. name_end 返回的结束名字(包含), 空字符串表示 +inf. limit 最多返回这么多个元素. 返回 v,返回元素的数组,为空时返回 nil 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpop ¶
从队列首部弹出最后一个元素.
name 队列的名字 返回 v,返回一个元素,并在队列中删除 v;队列为空时返回空值 返回 err,执行的错误,操作成功返回 nil
func (*Client) QpopArray ¶
从队列首部弹出最后多个个元素.
name 队列的名字 size 取出元素的数量 reverse 是否反转取 返回 v,返回多个元素,并在队列中弹出多个元素; 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpop_back ¶
从队列尾部弹出最后一个元素.
name 队列的名字 返回 v,返回一个元素,并在队列中删除 v;队列为空时返回空值 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpop_back_array ¶
从队列尾部弹出最后多个元素.
name 队列的名字 返回 v,返回多个元素,并在队列中弹出多个元素; 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpop_front ¶
从队列首部弹出最后一个元素.
name 队列的名字 返回 v,返回一个元素,并在队列中删除 v;队列为空时返回空值 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpop_front_array ¶
从队列首部弹出最后多个元素.
name 队列的名字 返回 v,返回多个元素,并在队列中弹出多个元素; 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpush ¶
往队列的尾部添加一个或者多个元素
name 队列的名字 value 存贮的值,可以为多值. 返回 size,添加元素之后, 队列的长度 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpush_array ¶
往队列的尾部添加一个或者多个元素
name 队列的名字 value 存贮的值,可以为多值. 返回 size,添加元素之后, 队列的长度 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpush_back ¶
往队列的尾部添加一个或者多个元素
name 队列的名字 value 存贮的值,可以为多值. 返回 size,添加元素之后, 队列的长度 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpush_back_array ¶
往队列的尾部添加一个或者多个元素
name 队列的名字 value 存贮的值,可以为多值. 返回 size,添加元素之后, 队列的长度 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpush_front ¶
往队列的首部添加一个或者多个元素
name 队列的名字 value 存贮的值,可以为多值. 返回 size,添加元素之后, 队列的长度 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qpush_front_array ¶
往队列的首部添加一个或者多个元素
name 队列的名字 value 存贮的值,可以为多值. 返回 size,添加元素之后, 队列的长度 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qrange ¶
返回下标处于区域 [offset, offset + limit] 的元素.
name queue 的名字. offset 整数, 从此下标处开始返回. 从 0 开始. 可以是负数, 表示从末尾算起. limit 正整数, 最多返回这么多个元素. 返回 v,返回元素的数组,为空时返回 nil 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qrlist ¶
列出名字处于区间 (name_start, name_end] 的 queue/list.
name_start 返回的起始名字(不包含), 空字符串表示 -inf. name_end 返回的结束名字(包含), 空字符串表示 +inf. limit 最多返回这么多个元素. 返回 v,返回元素的数组,为空时返回 nil 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qset ¶
更新位于 index 位置的元素. 如果超过现有的元素范围, 会返回错误.
key 队列的名字 index 指定的位置,可传负数. val 传入的值. 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qslice ¶
返回下标处于区域 [begin, end] 的元素. begin 和 end 可以是负数
name queue 的名字. begin 正整数, 从此下标处开始返回。从 0 开始。 end 整数, 结束下标。可以是负数, 表示返回所有。 返回 v,返回元素的数组,为空时返回 nil 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qtrim ¶
从队列头部删除多个元素.
name queue 的名字. size 最多从队列删除这么多个元素 reverse 可选,是否反向执行 返回 delSize,返回被删除的元素数量 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qtrim_back ¶
从队列尾部删除多个元素.
name queue 的名字. size 最多从队列删除这么多个元素 返回 v,返回元素的数组,为空时返回 nil 返回 err,执行的错误,操作成功返回 nil
func (*Client) Qtrim_front ¶
从队列头部删除多个元素.
name queue 的名字. size 最多从队列删除这么多个元素 返回 v,返回元素的数组,为空时返回 nil 返回 err,执行的错误,操作成功返回 nil
func (*Client) Rkeys ¶
列出处于区间 (key_start, key_end] 的 key 列表.("", ""] 表示整个区间.反向选择
keyStart int 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd int 返回的结束 key(包含), 空字符串表示 +inf. limit int 最多返回这么多个元素. 返回 返回包含 key 的数组. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Rscan ¶
列出处于区间 (key_start, key_end] 的 key-value 列表, 反向顺序.("", ""] 表示整个区间.
keyStart int 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd int 返回的结束 key(包含), 空字符串表示 +inf. limit int 最多返回这么多个元素. 返回 返回包含 key 的数组. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Scan ¶
列出处于区间 (key_start, key_end] 的 key-value 列表.("", ""] 表示整个区间.
keyStart int 返回的起始 key(不包含), 空字符串表示 -inf. keyEnd int 返回的结束 key(包含), 空字符串表示 +inf. limit int 最多返回这么多个元素. 返回 返回包含 key 的数组. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Set ¶
设置指定 key 的值内容
key 键值 val 存贮的 value 值,val只支持基本的类型,如果要支持复杂的类型,需要开启连接池的 Encoding 选项 ttl 可选,设置的过期时间,单位为秒 返回 err,可能的错误,操作成功返回 nil
func (*Client) Setnx ¶
当 key 不存在时, 设置指定 key 的值内容. 如果已存在, 则不设置.
key 键值 val 存贮的 value 值,val只支持基本的类型,如果要支持复杂的类型,需要开启连接池的 Encoding 选项 返回 err,可能的错误,操作成功返回 nil 返回 val 1: value 已经设置, 0: key 已经存在, 不更新.
func (*Client) Substr ¶
if err != nil { return 255, goerr.NewError(err, "Getbit %s error", key) } if len(resp) == 2 && resp[0] == OK { return Value(resp[1]).Byte(), nil } return 255, makeError(resp, key) }
获取字符串的子串.
key 键值 start int, 子串的字节偏移;若 start 是负数, 则从字符串末尾算起. size int,可选, 子串的长度(字节数), 默认为到字符串最后一个字节;若 size 是负数, 则表示从字符串末尾算起, 忽略掉那么多字节(类似 PHP 的 substr()) 返回 val,字符串的部分 返回 err,可能的错误,操作成功返回 nil
func (*Client) Ttl ¶
返回 key(只针对 KV 类型) 的存活时间.
key 要删除的 key 返回 ttl,key 的存活时间(秒), -1 表示没有设置存活时间. 返回 err,执行的错误,操作成功返回 nil
func (*Client) Zavg ¶
返回 key 处于区间 [start,end] 的 score 的平均值.
setName zset名称 scoreStart key 的最小权重值(可能不包含, 依赖 key_start), 空字符串表示 -inf. scoreEnd key 的最大权重值(包含), 空字符串表示 +inf. 返回 val 符合条件的 score 的平均值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zcount ¶
返回处于区间 [start,end] key 数量.
setName zset名称 start key 的最小权重值(包含), 空字符串表示 -inf. end key 的最大权重值(包含), 空字符串表示 +inf. 返回 count 返回符合条件的 key 的数量. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zexists ¶
判断指定的 key 是否存在于 zset 中.
setName zset名称 key zset 中的 key. 返回 re 如果存在, 返回 true, 否则返回 false. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zget ¶
获取 zset 中指定 key 对应的权重值.
setName zset名称 key zset 中的 key. 返回 score 整数, key 对应的权重值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zincr ¶
使 zset 中的 key 对应的值增加 num. 参数 num 可以为负数.
setName zset名称 key 要增加权重的key num 要增加权重值 返回 int64 增加后的新权重值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zkeys ¶
func (c *Client) Zkeys(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, err error)
列出 zset 中的 key 列表. 参见 zscan().
setName zset名称 keyStart score_start 对应的 key. scoreStart 返回 key 的最小权重值(可能不包含, 依赖 key_start), 空字符串表示 -inf. scoreEnd 返回 key 的最大权重值(包含), 空字符串表示 +inf. limit 最多返回这么多个元素. 返回 keys 返回符合条件的 key 的数组. 返回 scores 返回符合条件的 key 对应的权重. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zlist ¶
列出名字处于区间 (name_start, name_end] 的 zset.
name_start - 返回的起始名字(不包含), 空字符串表示 -inf. name_end - 返回的结束名字(包含), 空字符串表示 +inf. limit 最多返回这么多个元素. 返回 []string 返回包含名字的slice. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zpopback ¶
从 zset 尾部删除并返回 `limit` 个元素.
setName zset名称 limit 最多要删除并返回这么多个 key-score 对. 返回 包含 key-score 的map 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zpopfront ¶
从 zset 首部删除并返回 `limit` 个元素.
setName zset名称 limit 最多要删除并返回这么多个 key-score 对. 返回 包含 key-score 的map 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrange ¶
根据下标索引区间 [offset, offset + limit) 获取 key-score 对, 下标从 0 开始.注意! 本方法在 offset 越来越大时, 会越慢!
setName zset名称 offset 从此下标处开始返回. 从 0 开始. limit 最多返回这么多个 key-score 对. 返回 val 排名 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrange_slice ¶
func (c *Client) Zrange_slice(setName string, offset, limit int64) (key []string, val []int64, err error)
根据下标索引区间 [offset, offset + limit) 获取 获取 key和score 数组对, 下标从 0 开始.注意! 本方法在 offset 越来越大时, 会越慢!
setName zset名称 offset 从此下标处开始返回. 从 0 开始. limit 最多返回这么多个 key-score 对. 返回 val 排名 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrank ¶
返回指定 key 在 zset 中的排序位置(排名), 排名从 0 开始. 注意! 本方法可能会非常慢! 请在离线环境中使用.
setName zset名称 key 指定key名 返回 val 排名 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zremrangebyrank ¶
删除位置处于区间 [start,end] 的元素.
setName zset名称 start 区间开始,包含start值 end 区间结束,包含end值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zremrangebyscore ¶
删除权重处于区间 [start,end] 的元素.
setName zset名称 start 区间开始,包含start值 end 区间结束,包含end值 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrrange ¶
根据下标索引区间 [offset, offset + limit) 获取 key-score 对, 反向顺序获取.注意! 本方法在 offset 越来越大时, 会越慢!
setName zset名称 offset 从此下标处开始返回. 从 0 开始. limit 最多返回这么多个 key-score 对. 返回 val 排名 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrrange_slice ¶
func (c *Client) Zrrange_slice(setName string, offset, limit int64) (key []string, val []int64, err error)
根据下标索引区间 [offset, offset + limit) 获取 key和score 数组对, 反向顺序获取.注意! 本方法在 offset 越来越大时, 会越慢!
setName zset名称 offset 从此下标处开始返回. 从 0 开始. limit 最多返回这么多个 key-score 对. 返回 val 排名 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrrank ¶
返回指定 key 在 zset 中的倒序排名.注意! 本方法可能会非常慢! 请在离线环境中使用.
setName zset名称 key 指定key名 返回 val 排名 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zrscan ¶
func (c *Client) Zrscan(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, scores []int64, err error)
列出 zset 中的 key-score 列表, 反向顺序
setName zset名称 keyStart score_start 对应的 key. scoreStart 返回 key 的最小权重值(可能不包含, 依赖 key_start), 空字符串表示 -inf. scoreEnd 返回 key 的最大权重值(包含), 空字符串表示 +inf. limit 最多返回这么多个元素. 返回 keys 返回符合条件的 key 的数组. 返回 scores 返回符合条件的 key 对应的权重. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zscan ¶
func (c *Client) Zscan(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, scores []int64, err error)
列出 zset 中处于区间 (key_start+score_start, score_end] 的 key-score 列表.
如果 key_start 为空, 那么对应权重值大于或者等于 score_start 的 key 将被返回. 如果 key_start 不为空, 那么对应权重值大于 score_start 的 key, 或者大于 key_start 且对应权重值等于 score_start 的 key 将被返回. 也就是说, 返回的 key 在 (key.score == score_start && key > key_start || key.score > score_start), 并且 key.score <= score_end 区间. 先判断 score_start, score_end, 然后判断 key_start. setName zset名称 keyStart score_start 对应的 key. scoreStart 返回 key 的最小权重值(可能不包含, 依赖 key_start), 空字符串表示 -inf. scoreEnd 返回 key 的最大权重值(包含), 空字符串表示 +inf. limit 最多返回这么多个元素. 返回 keys 返回符合条件的 key 的数组. 返回 scores 返回符合条件的 key 对应的权重. 返回 err,可能的错误,操作成功返回 nil
func (*Client) Zset ¶
设置 zset 中指定 key 对应的权重值.
setName zset名称 key zset 中的 key. score 整数, key 对应的权重值 返回 err,可能的错误,操作成功返回 nil
type Connectors ¶
type Connectors struct {
// contains filtered or unexported fields
}
连接池
func NewPool ¶
func NewPool(conf *conf.Config) (*Connectors, error)
根据配置初始化连接池
conf 连接池的初始化配置 返回 一个可用的连接池 返回 err,可能的错误,操作成功返回 nil
默认值
GetClientTimeout int 获取连接超时时间,单位为秒,默认1分钟 MaxPoolSize int 最大连接池个数,默认为10 MinPoolSize int 最小连接池数,默认为1 AcquireIncrement int 当连接池中的连接耗尽的时候一次同时获取的连接数。默认值: 3 MaxIdleTime int 最大空闲时间,指定秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 MaxWaitSize int 最大等待数目,当连接池满后,新建连接将排除等待池中连接释放,本值限制最大等待的数量。默认值: 1000
func (*Connectors) NewClient ¶
func (c *Connectors) NewClient() (*Client, error)
创建一个新连接
返回 *Client 可用的连接 返回 error 可能的错误
type SSDBClient ¶
type SSDBClient struct { Password string Host string Port int //packetBuf bytes.Buffer //连接写缓冲,默认为8k,单位为kb WriteBufferSize int //连接读缓冲,默认为8k,单位为kb ReadBufferSize int //是否重试 RetryEnabled bool //读写超时 ReadWriteTimeout int //创建连接的超时时间,单位为秒。默认值: 5 ConnectTimeout int // contains filtered or unexported fields }
func (*SSDBClient) Do ¶
func (s *SSDBClient) Do(args ...interface{}) ([]string, error)
通用调用方法,如果有需要在所有方法前执行的,可以在这里执行
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
简单的使用配置文件的启动工具,配置文件默认为当前目录下的config.ini ### 示例配置 [ssdb] #ssdb的主机IP host=127.0.0.1 #ssdb的端口 port=8888 #连接池检查时间间隔 health_second=5 #连接密码,默认为空 password= #最大等待数目,当连接池满后,新建连接将等待池中连接释放后才可以继续,本值限制最大等待的数量,超过本值后将抛出异常。
|
简单的使用配置文件的启动工具,配置文件默认为当前目录下的config.ini ### 示例配置 [ssdb] #ssdb的主机IP host=127.0.0.1 #ssdb的端口 port=8888 #连接池检查时间间隔 health_second=5 #连接密码,默认为空 password= #最大等待数目,当连接池满后,新建连接将等待池中连接释放后才可以继续,本值限制最大等待的数量,超过本值后将抛出异常。 |