client

package
v1.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package client Encapsulates all functions of SSDB 封装ssdb的所有函数

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	//socket client
	ssdbclient.SSDBClient
	//auto close
	//标识该连接是否可以自动关闭
	AutoClose bool

	//tmp error
	//临时的错误信息,系统用
	Error error
	// contains filtered or unexported fields
}

Client client

可回收的连接,支持连接池。 非协程安全,多协程请使用多个连接。

func NewClient

func NewClient(c *ssdbclient.SSDBClient, autoClose bool, closeMethod func()) *Client

NewClient create new client

@param c *ssdbclient.SSDBClient
@param autoClose Whether to automatically close the identity
@param closeMethod A callback executed by a function to perform automatic closing of a connection
@return *Client

使用ssdb client创建一个可缓存的连接

func (*Client) BitCount

func (c *Client) BitCount(key string, start int64, end int64) (int64, error)

BitCount 计算字符串的子串所包含的位值为 1 的个数. 若 start 是负数, 则从字符串末尾算起. 若 end 是负数, 则表示从字符串末尾算起(包含). 类似 Redis 的 bitcount

key 键值
start 子串的字节偏移
end 子串的字节结尾
返回 val,返回位值为 1 的个数
返回 err,可能的错误,操作成功返回 nil

func (*Client) CountBit

func (c *Client) CountBit(key string, start int64, size int64) (int64, error)

CountBit 计算字符串的子串所包含的位值为 1 的个数. 若 start 是负数, 则从字符串末尾算起. 若 size 是负数, 则表示从字符串末尾算起, 忽略掉那么多字节.

key 键值
start 子串的字节偏移
size 子串的字节结尾
返回 val,返回位值为 1 的个数
返回 err,可能的错误,操作成功返回 nil

func (*Client) DbSize

func (c *Client) DbSize() (re int, err error)

DbSize returns the estimated size of the database in bytes. If compression is enabled on the server, returns the compressed size.

@return int the estimated size of the database in bytes
@return error possible error, operation successfully returned nil

返回数据库的估计大小, 以字节为单位. 如果服务器开启了压缩, 返回压缩后的大小.

func (*Client) Del

func (c *Client) Del(key string) error

Del 删除指定 key

key 要删除的 key
返回 err,执行的错误,操作成功返回 nil

func (*Client) Do

func (c *Client) Do(args ...interface{}) (rsp []string, err error)

Do The base function, which is used by all SSDB manipulation functions to interact with SSDB

@param args The input parameters
@return rsp The output value
@return err The output error

基础函数,所有的ssdb操作函数都使用这个与ssdb进行交互

func (*Client) Exists

func (c *Client) Exists(key string) (re bool, err error)

Exists 查询指定 key 是否存在

key 要查询的 key
返回 re,如果当前 key 不存在返回 false
返回 err,执行的错误,操作成功返回 nil

func (*Client) Expire

func (c *Client) Expire(key string, ttl int64) (re bool, err error)

Expire 设置过期

key 要设置过期的 key
ttl 存活时间(秒)
返回 re,设置是否成功,如果当前 key 不存在返回 false
返回 err,执行的错误,操作成功返回 nil

func (*Client) Get

func (c *Client) Get(key string) (Value, error)

Get 获取指定 key 的值内容

key 键值
返回 一个 Value,可以方便的向其它类型转换
返回 一个可能的错误,操作成功返回 nil

func (*Client) GetSet

func (c *Client) GetSet(key string, val interface{}) (Value, error)

GetSet 更新 key 对应的 value, 并返回更新前的旧的 value.

key 键值
val 存贮的 value 值,val只支持基本的类型,如果要支持复杂的类型,需要开启连接池的 Encoding 选项
返回 一个 Value,可以方便的向其它类型转换.如果 key 不存在则返回 "", 否则返回 key 对应的值内容.
返回 一个可能的错误,操作成功返回 nil

func (*Client) Getbit

func (c *Client) Getbit(key string, offset int64) (uint, error)

Getbit 获取字符串内指定位置的位值(BIT).

key 键值
offset 位偏移
返回 val,位值
返回 err,可能的错误,操作成功返回 nil

func (*Client) HClear

func (c *Client) HClear(setName string) (err error)

HClear 删除 hashmap 中的所有 key

setName hashmap 的名字
返回 err,执行的错误,操作成功返回 nil

func (*Client) HDel

func (c *Client) HDel(setName, key string) (err error)

HDel 删除 hashmap 中的指定 key,不能通过返回值来判断被删除的 key 是否存在.

setName hashmap 的名字
key hashmap 的 key
返回 err,执行的错误

func (*Client) HExists

func (c *Client) HExists(setName, key string) (re bool, err error)

HExists 判断指定的 key 是否存在于 hashmap 中.

setName hashmap 的名字
key hashmap 的 key
返回 re,如果当前 key 不存在返回 false
返回 err,执行的错误,操作成功返回 nil

func (*Client) HGet

func (c *Client) HGet(setName, key string) (value Value, err error)

HGet 获取 hashmap 中指定 key 的值内容.

setName hashmap 的名字
key hashmap 的 key
返回 value key 的值
返回 err,执行的错误

func (*Client) HGetAll

func (c *Client) HGetAll(setName string) (val map[string]Value, err error)

HGetAll 批量获取 hashmap 中全部 对应的权重值.

setName - hashmap 的名字.
返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中.
返回 err,执行的错误,操作成功返回 nil

func (*Client) HIncr

func (c *Client) HIncr(setName, key string, num int64) (val int64, err error)

HIncr 设置 hashmap 中指定 key 对应的值增加 num. 参数 num 可以为负数.

setName - hashmap 的名字.
key 键值
num 增加的值
返回 val,整数,增加 num 后的新值
返回 err,可能的错误,操作成功返回 nil

func (*Client) HKeys

func (c *Client) HKeys(setName, keyStart, keyEnd string, limit int64) ([]string, error)

HKeys 列出 hashmap 中处于区间 (keyStart, keyEnd] 的 key 列表.

name - hashmap 的名字.
keyStart - 返回的起始 key(不包含), 空字符串表示 -inf.
keyEnd - 返回的结束 key(包含), 空字符串表示 +inf.
limit - 最多返回这么多个元素.
返回 包含名字的数组
返回 err,执行的错误,操作成功返回 nil

func (*Client) HList

func (c *Client) HList(nameStart, nameEnd string, limit int64) ([]string, error)

HList 列出名字处于区间 (name_start, name_end] 的 hashmap. ("", ""] 表示整个区间.

nameStart - 返回的起始 key(不包含), 空字符串表示 -inf.
nameEnd - 返回的结束 key(包含), 空字符串表示 +inf.
limit - 最多返回这么多个元素.
返回 包含名字的数组
返回 err,执行的错D,操作成功返回 nil

func (*Client) HRScan

func (c *Client) HRScan(setName string, keyStart, keyEnd string, limit int64) (map[string]Value, error)

HRScan 列出 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)

HRScanArray 列出 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)

HScan 列出 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)

HScanArray 列出 hashmap 中处于区间 (key_start, key_end] 的 key,value 列表. ("", ""] 表示整个区间.

setName - hashmap 的名字.
keyStart - 返回的起始 key(不包含), 空字符串表示 -inf.
keyEnd - 返回的结束 key(包含), 空字符串表示 +inf.
limit - 最多返回这么多个元素.
返回包含 key-value 的关联字典.
返回 err,执行的错误,操作成功返回 nil

func (*Client) HSet

func (c *Client) HSet(setName, key string, value interface{}) (err error)

HSet 设置 hashmap 中指定 key 对应的值内容.

setName hashmap 的名字
key hashmap 的 key
value key 的值
返回 err,执行的错误

func (*Client) HSize

func (c *Client) HSize(setName string) (val int64, err error)

HSize 返回 hashmap 中的元素个数.

setName - hashmap 的名字.
返回 val,整数,增加 num 后的新值
返回 err,可能的错误,操作成功返回 nil

func (*Client) Incr

func (c *Client) Incr(key string, num int64) (val int64, err error)

Incr 使 key 对应的值增加 num. 参数 num 可以为负数.

key 键值
num 增加的值
返回 val,整数,增加 num 后的新值
返回 err,可能的错误,操作成功返回 nil

func (*Client) Info

func (c *Client) Info(opts ...string) (resp []string, err error)

Info returns information about the server.

@param opts optional parameters: cmd, leveldb. Default is leveldb
@return []string,Returns an associative array of server information
@return error possible error, operation successfully returned nil

返回服务器信息的关联数组.opts 可选参数, 可以是 cmd, leveldb

func (*Client) Keys

func (c *Client) Keys(keyStart, keyEnd string, limit int64) ([]string, error)

Keys 列出处于区间 (key_start, key_end] 的 key 列表.("", ""] 表示整个区间.

keyStart int 返回的起始 key(不包含), 空字符串表示 -inf.
keyEnd int 返回的结束 key(包含), 空字符串表示 +inf.
limit int 最多返回这么多个元素.
返回 返回包含 key 的数组.
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiDel

func (c *Client) MultiDel(key ...string) (err error)

MultiDel 批量删除一批 key 和其对应的值内容.

key,要删除的 key,可以为多个
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiGet

func (c *Client) MultiGet(key ...string) (val map[string]Value, err error)

MultiGet 批量获取一批 key 对应的值内容.

key,要获取的 key,可以为多个
返回 val,一个包含返回的 map
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiGetArray

func (c *Client) MultiGetArray(key []string) (val map[string]Value, err error)

MultiGetArray 批量获取一批 key 对应的值内容.(输入分片),MultiGet的别名

key,要获取的 key,可以为多个
返回 val,一个包含返回的 map
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiGetSlice

func (c *Client) MultiGetSlice(key ...string) (keys []string, values []Value, err error)

MultiGetSlice 批量获取一批 key 对应的值内容.

key,要获取的 key,可以为多个
返回 keys和value分片
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiGetSliceArray

func (c *Client) MultiGetSliceArray(key []string) (keys []string, values []Value, err error)

MultiGetSliceArray 批量获取一批 key 对应的值内容.(输入分片),MultiGetSlice的别名

key,要获取的 key,可以为多个
返回 keys和value分片
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiHDel

func (c *Client) MultiHDel(setName string, key ...string) (err error)

MultiHDel 批量删除 hashmap 中的 key.

setName - hashmap 的名字.
keys - 包含 key 的数组.
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiHDelArray

func (c *Client) MultiHDelArray(setName string, key []string) (err error)

MultiHDelArray 批量删除 hashmap 中的 key.(输入分片)

setName - hashmap 的名字.
keys - 包含 key 的数组.
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiHGet

func (c *Client) MultiHGet(setName string, key ...string) (val map[string]Value, err error)

MultiHGet 批量获取 hashmap 中多个 key 对应的权重值.

setName - hashmap 的名字.
keys - 包含 key 的数组 .
返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中.
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiHGetAll

func (c *Client) MultiHGetAll(setName string) (val map[string]Value, err error)

MultiHGetAll 批量获取 hashmap 中全部 对应的权重值.

setName - hashmap 的名字.
keys - 包含 key 的数组 .
返回 包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中.
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiHGetAllSlice

func (c *Client) MultiHGetAllSlice(setName string) (keys []string, values []Value, err error)

MultiHGetAllSlice 批量获取 hashmap 中全部 对应的权重值.

setName - hashmap 的名字.
返回 包含 key和value 的有序数组, 如果某个 key 不存在, 则它不会出现在返回数组中.
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiHGetArray

func (c *Client) MultiHGetArray(setName string, key []string) (val map[string]Value, err error)

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)

MultiHGetSlice 批量获取 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)

MultiHGetSliceArray 批量获取 hashmap 中多个 key 对应的权重值.(输入分片)

setName - hashmap 的名字.
keys - 包含 key 的数组 .
返回 包含 key和value 的有序数组, 如果某个 key 不存在, 则它不会出现在返回数组中.
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiHSet

func (c *Client) MultiHSet(setName string, kvs map[string]interface{}) (err error)

MultiHSet 批量设置 hashmap 中的 key-value.

setName - hashmap 的名字.
kvs - 包含 key-value 的关联数组 .
返回 err,执行的错误,操作成功返回 nil

func (*Client) MultiSet

func (c *Client) MultiSet(kvs map[string]interface{}) (err error)

MultiSet 批量设置一批 key-value.

包含 key-value 的字典
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiZDel

func (c *Client) MultiZDel(setName string, key ...string) (err error)

MultiZDel 批量删除 zset 中的 key-score.

setName zset名称
key 要删除key的列表,支持多个key
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiZGet

func (c *Client) MultiZGet(setName string, key ...string) (val map[string]int64, err error)

MultiZGet 批量获取 zset 中的 key-score.

setName zset名称
key 要获取key的列表,支持多个key
返回 val 包含 key-score 的map
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiZGetArray

func (c *Client) MultiZGetArray(setName string, key []string) (val map[string]int64, err error)

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)

MultiZGetSlice 批量获取 zset 中的 key-score.

setName zset名称
key 要获取key的列表,支持多个key
返回 keys 包含 key的slice
返回 scores 包含 key对应权重的slice
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiZSet

func (c *Client) MultiZSet(setName string, kvs map[string]int64) (err error)

MultiZSet 批量设置 zset 中的 key-score.

setName zset名称
kvs 包含 key-score 的map
返回 err,可能的错误,操作成功返回 nil

func (*Client) MultiZgetSliceArray

func (c *Client) MultiZgetSliceArray(setName string, key []string) (keys []string, scores []int64, err error)

MultiZgetSliceArray 批量获取 zset 中的 key-score.

setName zset名称
key 要获取key的slice
返回 keys 包含 key的slice
返回 scores 包含 key对应权重的slice
返回 err,可能的错误,操作成功返回 nil

func (*Client) Ping

func (c *Client) Ping() bool

Ping ping ssdb

@return ssdb is available

func (*Client) QBack

func (c *Client) QBack(key string) (Value, error)

QBack 返回队列的最后一个元素.

key  队列的名字
返回 val,返回的值.
返回 err,执行的错误,操作成功返回 nil

func (*Client) QClear

func (c *Client) QClear(name string) (err error)

QClear 清空一个队列.

name  队列的名字
返回 err,执行的错误,操作成功返回 nil

func (*Client) QFront

func (c *Client) QFront(key string) (Value, error)

QFront 返回队列的第一个元素.

key  队列的名字
返回 val,返回的值.
返回 err,执行的错误,操作成功返回 nil

func (*Client) QGet

func (c *Client) QGet(key string, index int64) (Value, error)

QGet 返回指定位置的元素. 0 表示第一个元素, 1 是第二个 ... -1 是最后一个.

key  队列的名字
index 指定的位置,可传负数.
返回 val,返回的值.
返回 err,执行的错误,操作成功返回 nil

func (*Client) QList

func (c *Client) QList(nameStart, nameEnd string, limit int64) ([]string, error)

QList 列出名字处于区间 (name_start, name_end] 的 queue/list.

name_start  返回的起始名字(不包含), 空字符串表示 -inf.
name_end  返回的结束名字(包含), 空字符串表示 +inf.
limit  最多返回这么多个元素.
返回 v,返回元素的数组,为空时返回 nil
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPop

func (c *Client) QPop(name string, reverse ...bool) (v Value, err error)

QPop 从队列首部弹出最后一个元素.

name 队列的名字
返回 v,返回一个元素,并在队列中删除 v;队列为空时返回空值
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPopArray

func (c *Client) QPopArray(name string, size int64, reverse ...bool) (v []Value, err error)

QPopArray 从队列首部弹出最后多个个元素.

name 队列的名字
size 取出元素的数量
reverse 是否反转取
返回 v,返回多个元素,并在队列中弹出多个元素;
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPopBack

func (c *Client) QPopBack(name string) (v Value, err error)

QPopBack 从队列尾部弹出最后一个元素.

name 队列的名字
返回 v,返回一个元素,并在队列中删除 v;队列为空时返回空值
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPopBackArray

func (c *Client) QPopBackArray(name string, size int64) (v []Value, err error)

QPopBackArray 从队列尾部弹出最后多个元素.

name 队列的名字
返回 v,返回多个元素,并在队列中弹出多个元素;
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPopFront

func (c *Client) QPopFront(name string) (v Value, err error)

QPopFront 从队列首部弹出最后一个元素.

name 队列的名字
返回 v,返回一个元素,并在队列中删除 v;队列为空时返回空值
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPopFrontArray

func (c *Client) QPopFrontArray(name string, size int64) (v []Value, err error)

QPopFrontArray 从队列首部弹出最后多个元素.

name 队列的名字
返回 v,返回多个元素,并在队列中弹出多个元素;
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPush

func (c *Client) QPush(name string, value ...interface{}) (size int64, err error)

QPush 往队列的尾部添加一个或者多个元素

name  队列的名字
value  存贮的值,可以为多值.
返回 size,添加元素之后, 队列的长度
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPushArray

func (c *Client) QPushArray(name string, value []interface{}) (size int64, err error)

QPushArray 往队列的尾部添加一个或者多个元素

name  队列的名字
value  存贮的值,可以为多值.
返回 size,添加元素之后, 队列的长度
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPushBack

func (c *Client) QPushBack(name string, value ...interface{}) (size int64, err error)

QPushBack 往队列的尾部添加一个或者多个元素

name  队列的名字
value  存贮的值,可以为多值.
返回 size,添加元素之后, 队列的长度
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPushBackArray

func (c *Client) QPushBackArray(name string, value []interface{}) (size int64, err error)

QPushBackArray 往队列的尾部添加一个或者多个元素

name  队列的名字
value  存贮的值,可以为多值.
返回 size,添加元素之后, 队列的长度
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPushFront

func (c *Client) QPushFront(name string, value ...interface{}) (size int64, err error)

QPushFront 往队列的首部添加一个或者多个元素

name  队列的名字
value  存贮的值,可以为多值.
返回 size,添加元素之后, 队列的长度
返回 err,执行的错误,操作成功返回 nil

func (*Client) QPushFrontArray

func (c *Client) QPushFrontArray(name string, value []interface{}) (size int64, err error)

QPushFrontArray 往队列的首部添加一个或者多个元素

name  队列的名字
value  存贮的值,可以为多值.
返回 size,添加元素之后, 队列的长度
返回 err,执行的错误,操作成功返回 nil

func (*Client) QRList

func (c *Client) QRList(nameStart, nameEnd string, limit int64) ([]string, error)

QRList 列出名字处于区间 (name_start, name_end] 的 queue/list.

name_start  返回的起始名字(不包含), 空字符串表示 -inf.
name_end  返回的结束名字(包含), 空字符串表示 +inf.
limit  最多返回这么多个元素.
返回 v,返回元素的数组,为空时返回 nil
返回 err,执行的错误,操作成功返回 nil

func (*Client) QRange

func (c *Client) QRange(name string, offset, limit int) (v []Value, err error)

QRange 返回下标处于区域 [offset, offset + limit] 的元素.

name queue 的名字.
offset 整数, 从此下标处开始返回. 从 0 开始. 可以是负数, 表示从末尾算起.
limit 正整数, 最多返回这么多个元素.
返回 v,返回元素的数组,为空时返回 nil
返回 err,执行的错误,操作成功返回 nil

func (*Client) QSet

func (c *Client) QSet(key string, index int64, val interface{}) (err error)

QSet 更新位于 index 位置的元素. 如果超过现有的元素范围, 会返回错误.

key  队列的名字
index 指定的位置,可传负数.
val  传入的值.
返回 err,执行的错误,操作成功返回 nil

func (*Client) QSize

func (c *Client) QSize(name string) (size int64, err error)

QSize 返回队列的长度.

name  队列的名字
返回 size,队列的长度;
返回 err,执行的错误,操作成功返回 nil

func (*Client) QSlice

func (c *Client) QSlice(name string, begin, end int) (v []Value, err error)

QSlice 返回下标处于区域 [begin, end] 的元素. begin 和 end 可以是负数

name queue 的名字.
begin 正整数, 从此下标处开始返回。从 0 开始。
end 整数, 结束下标。可以是负数, 表示返回所有。
返回 v,返回元素的数组,为空时返回 nil
返回 err,执行的错误,操作成功返回 nil

func (*Client) QTrim

func (c *Client) QTrim(name string, size int, reverse ...bool) (delSize int64, err error)

QTrim 从队列头部删除多个元素.

name queue 的名字.
size 最多从队列删除这么多个元素
reverse 可选,是否反向执行
返回 delSize,返回被删除的元素数量
返回 err,执行的错误,操作成功返回 nil

func (*Client) QTrimBack

func (c *Client) QTrimBack(name string, size int) (delSize int64, err error)

QTrimBack 从队列尾部删除多个元素.

name queue 的名字.
size 最多从队列删除这么多个元素
返回 v,返回元素的数组,为空时返回 nil
返回 err,执行的错误,操作成功返回 nil

func (*Client) QTrimFront

func (c *Client) QTrimFront(name string, size int) (delSize int64, err error)

QTrimFront 从队列头部删除多个元素.

name queue 的名字.
size 最多从队列删除这么多个元素
返回 v,返回元素的数组,为空时返回 nil
返回 err,执行的错误,操作成功返回 nil

func (*Client) RKeys

func (c *Client) RKeys(keyStart, keyEnd string, limit int64) ([]string, error)

RKeys 列出处于区间 (key_start, key_end] 的 key 列表.("", ""] 表示整个区间.反向选择

keyStart int 返回的起始 key(不包含), 空字符串表示 -inf.
keyEnd int 返回的结束 key(包含), 空字符串表示 +inf.
limit int 最多返回这么多个元素.
返回 返回包含 key 的数组.
返回 err,可能的错误,操作成功返回 nil

func (*Client) RScan

func (c *Client) RScan(keyStart, keyEnd string, limit int64) (map[string]Value, error)

RScan 列出处于区间 (key_start, key_end] 的 key-value 列表, 反向顺序.("", ""] 表示整个区间.

keyStart int 返回的起始 key(不包含), 空字符串表示 -inf.
keyEnd int 返回的结束 key(包含), 空字符串表示 +inf.
limit int 最多返回这么多个元素.
返回 返回包含 key 的数组.
返回 err,可能的错误,操作成功返回 nil

func (*Client) Scan

func (c *Client) Scan(keyStart, keyEnd string, limit int64) (map[string]Value, error)

Scan 列出处于区间 (key_start, key_end] 的 key-value 列表.("", ""] 表示整个区间.

keyStart int 返回的起始 key(不包含), 空字符串表示 -inf.
keyEnd int 返回的结束 key(包含), 空字符串表示 +inf.
limit int 最多返回这么多个元素.
返回 返回包含 key 的数组.
返回 err,可能的错误,操作成功返回 nil

func (*Client) Set

func (c *Client) Set(key string, val interface{}, ttl ...int64) (err error)

Set 设置指定 key 的值内容

key 键值
val 存贮的 value 值,val只支持基本的类型,如果要支持复杂的类型,需要开启连接池的 Encoding 选项
ttl 可选,设置的过期时间,单位为秒
返回 err,可能的错误,操作成功返回 nil

func (*Client) SetNX

func (c *Client) SetNX(key string, val interface{}) (Value, error)

SetNX 当 key 不存在时, 设置指定 key 的值内容. 如果已存在, 则不设置.

key 键值
val 存贮的 value 值,val只支持基本的类型,如果要支持复杂的类型,需要开启连接池的 Encoding 选项
返回 err,可能的错误,操作成功返回 nil
返回 val 1: value 已经设置, 0: key 已经存在, 不更新.

func (*Client) Setbit

func (c *Client) Setbit(key string, offset int64, bit int) (uint, error)

Setbit 设置字符串内指定位置的位值(BIT), 字符串的长度会自动扩展.

key 键值
offset 位偏移
bit  0 或 1
返回 val,原来的位值
返回 err,可能的错误,操作成功返回 nil

func (*Client) StrLen

func (c *Client) StrLen(key string) (int64, error)

StrLen 计算字符串的长度(字节数).

key 键值
返回 字符串的长度, key 不存在则返回 0.
返回 err,可能的错误,操作成功返回 nil

func (*Client) Substr

func (c *Client) Substr(key string, start int64, size ...int64) (val string, err error)

Substr 获取字符串的子串.

key 键值
start int, 子串的字节偏移;若 start 是负数, 则从字符串末尾算起.
size  int,可选, 子串的长度(字节数), 默认为到字符串最后一个字节;若 size 是负数, 则表示从字符串末尾算起, 忽略掉那么多字节(类似 PHP 的 substr())
返回 val,字符串的部分
返回 err,可能的错误,操作成功返回 nil

func (*Client) TTL

func (c *Client) TTL(key string) (ttl int64, err error)

TTL 返回 key(只针对 KV 类型) 的存活时间.

key 要删除的 key
返回 ttl,key 的存活时间(秒), -1 表示没有设置存活时间.
返回 err,执行的错误,操作成功返回 nil

func (*Client) ZAvg

func (c *Client) ZAvg(setName string, scoreStart, scoreEnd interface{}) (val int64, err error)

ZAvg 返回 key 处于区间 [start,end] 的 score 的平均值.

setName zset名称
scoreStart  key 的最小权重值(可能不包含, 依赖 key_start), 空字符串表示 -inf.
scoreEnd  key 的最大权重值(包含), 空字符串表示 +inf.
返回 val 符合条件的 score 的平均值
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZClear

func (c *Client) ZClear(setName string) (err error)

ZClear 删除 zset 中的所有 key.

setName zset名称
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZCount

func (c *Client) ZCount(setName string, start, end interface{}) (count int64, err error)

ZCount 返回处于区间 [start,end] key 数量.

setName zset名称
start key 的最小权重值(包含), 空字符串表示 -inf.
end key 的最大权重值(包含), 空字符串表示 +inf.
返回 count 返回符合条件的 key 的数量.
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZDel

func (c *Client) ZDel(setName, key string) (err error)

ZDel 删除 zset 中指定 key

setName zset名称
key zset 中的 key.
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZExists

func (c *Client) ZExists(setName, key string) (re bool, err error)

ZExists 判断指定的 key 是否存在于 zset 中.

setName zset名称
key zset 中的 key.
返回 re 如果存在, 返回 true, 否则返回 false.
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZGet

func (c *Client) ZGet(setName, key string) (score int64, err error)

ZGet 获取 zset 中指定 key 对应的权重值.

setName zset名称
key zset 中的 key.
返回 score 整数, key 对应的权重值
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZIncr

func (c *Client) ZIncr(setName string, key string, num int64) (int64, error)

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)

ZKeys 列出 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

func (c *Client) ZList(nameStart, nameEnd string, limit int64) ([]string, error)

ZList 列出名字处于区间 (name_start, name_end] 的 zset.

name_start - 返回的起始名字(不包含), 空字符串表示 -inf.
name_end - 返回的结束名字(包含), 空字符串表示 +inf.
limit  最多返回这么多个元素.
返回 []string 返回包含名字的slice.
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZPopBack

func (c *Client) ZPopBack(setName string, limit int64) (val map[string]int64, err error)

ZPopBack 从 zset 尾部删除并返回 `limit` 个元素.

setName zset名称
limit 最多要删除并返回这么多个 key-score 对.
返回 包含 key-score 的map
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZPopFront

func (c *Client) ZPopFront(setName string, limit int64) (val map[string]int64, err error)

ZPopFront 从 zset 首部删除并返回 `limit` 个元素.

setName zset名称
limit 最多要删除并返回这么多个 key-score 对.
返回 包含 key-score 的map
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRRange

func (c *Client) ZRRange(setName string, offset, limit int64) (val map[string]int64, err error)

ZRRange 根据下标索引区间 [offset, offset + limit) 获取 key-score 对, 反向顺序获取.注意! 本方法在 offset 越来越大时, 会越慢!

setName zset名称
offset 从此下标处开始返回. 从 0 开始.
limit  最多返回这么多个 key-score 对.
返回 val 排名
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRRangeSlice

func (c *Client) ZRRangeSlice(setName string, offset, limit int64) (key []string, val []int64, err error)

ZRRangeSlice 根据下标索引区间 [offset, offset + limit) 获取 key和score 数组对, 反向顺序获取.注意! 本方法在 offset 越来越大时, 会越慢!

setName zset名称
offset 从此下标处开始返回. 从 0 开始.
limit  最多返回这么多个 key-score 对.
返回 val 排名
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRRank

func (c *Client) ZRRank(setName, key string) (val int64, err error)

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)

ZRScan 列出 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) ZRange

func (c *Client) ZRange(setName string, offset, limit int64) (val map[string]int64, err error)

ZRange 根据下标索引区间 [offset, offset + limit) 获取 key-score 对, 下标从 0 开始.注意! 本方法在 offset 越来越大时, 会越慢!

setName zset名称
offset 从此下标处开始返回. 从 0 开始.
limit  最多返回这么多个 key-score 对.
返回 val 排名
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRangeSlice

func (c *Client) ZRangeSlice(setName string, offset, limit int64) (key []string, val []int64, err error)

ZRangeSlice 根据下标索引区间 [offset, offset + limit) 获取 获取 key和score 数组对, 下标从 0 开始.注意! 本方法在 offset 越来越大时, 会越慢!

setName zset名称
offset 从此下标处开始返回. 从 0 开始.
limit  最多返回这么多个 key-score 对.
返回 val 排名
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRank

func (c *Client) ZRank(setName, key string) (val int64, err error)

ZRank 返回指定 key 在 zset 中的排序位置(排名), 排名从 0 开始. 注意! 本方法可能会非常慢! 请在离线环境中使用.

setName zset名称
key 指定key名
返回 val 排名
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRemRangeByRank

func (c *Client) ZRemRangeByRank(setName string, start, end int64) (err error)

ZRemRangeByRank 删除位置处于区间 [start,end] 的元素.

setName zset名称
start 区间开始,包含start值
end  区间结束,包含end值
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZRemRangeByScore

func (c *Client) ZRemRangeByScore(setName string, start, end int64) (err error)

ZRemRangeByScore 删除权重处于区间 [start,end] 的元素.

setName zset名称
start 区间开始,包含start值
end  区间结束,包含end值
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZScan

func (c *Client) ZScan(setName string, keyStart string, scoreStart, scoreEnd interface{}, limit int64) (keys []string, scores []int64, err error)

ZScan 列出 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

func (c *Client) ZSet(setName, key string, score int64) (err error)

ZSet 设置 zset 中指定 key 对应的权重值.

setName zset名称
key zset 中的 key.
score 整数, key 对应的权重值
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZSize

func (c *Client) ZSize(name string) (val int64, err error)

ZSize 返回 zset 中的元素个数.

name zset的名称.
返回 val 返回包含名字元素的个数.
返回 err,可能的错误,操作成功返回 nil

func (*Client) ZSum

func (c *Client) ZSum(setName string, scoreStart, scoreEnd interface{}) (val int64, err error)

ZSum 返回 key 处于区间 [start,end] 的 score 的和.

setName zset名称
scoreStart  key 的最小权重值(可能不包含, 依赖 key_start), 空字符串表示 -inf.
scoreEnd  key 的最大权重值(包含), 空字符串表示 +inf.
返回 val 符合条件的 score 的求和
返回 err,可能的错误,操作成功返回 nil

type Value

type Value string

Value string

扩展值,原始类型为 string

func (Value) As

func (v Value) As(value interface{}) (err error)

As 按json 转换指定类型

value 传入的指针

示例

var abc time.Time
v.As(&abc)

func (Value) Bool

func (v Value) Bool() bool

Bool 返回 bool 类型的值

func (Value) Byte

func (v Value) Byte() byte

Byte 返回 byte 类型的值

func (Value) Bytes

func (v Value) Bytes() []byte

Bytes 返回 []byte 类型的值

func (Value) Duration

func (v Value) Duration() time.Duration

Duration 返回 time.Duration 类型的值

func (Value) Float32

func (v Value) Float32() float32

Float32 返回 float32 类型的值

func (Value) Float64

func (v Value) Float64() float64

Float64 返回 float64 类型的值

func (Value) Int

func (v Value) Int() int

Int 返回 int 的值

func (Value) Int16

func (v Value) Int16() int16

Int16 返回 int16 的值

func (Value) Int32

func (v Value) Int32() int32

Int32 返回 int32 的值

func (Value) Int64

func (v Value) Int64() int64

Int64 返回 int64 的值

func (Value) Int8

func (v Value) Int8() int8

Int8 返回 int8 的值

func (Value) IsEmpty

func (v Value) IsEmpty() bool

IsEmpty 判断是否为空

func (Value) String

func (v Value) String() string

String 返回 string 的值

func (Value) Time

func (v Value) Time() time.Time

Time 返回 time.Time 类型的值

func (Value) UInt

func (v Value) UInt() uint

UInt 返回 uint 类型的值

func (Value) UInt16

func (v Value) UInt16() uint16

UInt16 返回 uint16 类型的值

func (Value) UInt32

func (v Value) UInt32() uint32

UInt32 返回 uint32 类型的值

func (Value) UInt64

func (v Value) UInt64() uint64

UInt64 返回 uint64 的值

func (Value) UInt8

func (v Value) UInt8() uint8

UInt8 返回 uint8 类型的值

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL