driver

package
v2.1.4 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2023 License: MIT Imports: 25 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// KeepTTL 保持原有的存活时间
	KeepTTL time.Duration = -1

	// ValueMaxTTL 数值最多可存活时长
	ValueMaxTTL = time.Hour * 6
)

*

@author : Jerbe - The porter from Earth
@time : 2023/9/13 15:09
@describe :

Variables

View Source
var MemoryNil = errors.New("memory cache: nil")

Functions

func RegisterNilError added in v2.1.2

func RegisterNilError(err error)

RegisterNilError 注册返回空值错误

Types

type BoolValuer

type BoolValuer interface {
	Val() bool
	Err() error

	Result() (bool, error)
}

BoolValuer 布尔数值接口

type Cache

type Cache interface {
	Common
	String
	Hash
	List
	SortedSet
}

Cache 缓存器

func NewMemory

func NewMemory() Cache

NewMemory 实例化一个内存核心的缓存驱动

func NewMemoryWithConfig added in v2.1.4

func NewMemoryWithConfig(cfg MemoryConfig) (Cache, error)

NewMemoryWithConfig 实例化一个分布式的内存核心的缓存驱动

func NewRedis

func NewRedis(opt *RedisOptions) Cache

type Common

type Common interface {
	// Del 删除一个或多个key
	Del(ctx context.Context, keys ...string) IntValuer

	// Exists 判断某个Key是否存在
	Exists(ctx context.Context, keys ...string) IntValuer

	// Expire 设置某个key的存活时间
	Expire(ctx context.Context, key string, ttl time.Duration) BoolValuer

	// ExpireAt 设置某个key在指定时间内到期
	ExpireAt(ctx context.Context, key string, at time.Time) BoolValuer

	// Persist 将某个Key设置成持久性
	Persist(ctx context.Context, key string) BoolValuer
}

Common 通用接口

type EtcdConfig added in v2.1.4

type EtcdConfig = v3.Config

EtcdConfig 使用ETCD服务的配置

type FloatValuer added in v2.1.0

type FloatValuer interface {
	Val() float64
	Err() error

	Result() (float64, error)
}

FloatValuer 浮点型数值接口

type Hash

type Hash interface {
	Common

	// HExists 判断field是否存在
	HExists(ctx context.Context, key, field string) BoolValuer

	// HDel 哈希表删除指定字段(fields)
	HDel(ctx context.Context, key string, fields ...string) IntValuer

	// HSet 哈希表设置数据
	HSet(ctx context.Context, key string, data ...interface{}) IntValuer

	// HSetNX 设置哈希表field对应的值,当field不存在时才能成功
	HSetNX(ctx context.Context, key, field string, data interface{}) BoolValuer

	// HGet 哈希表获取一个数据
	HGet(ctx context.Context, key string, field string) StringValuer

	// HMGet 哈希表获取多个数据
	HMGet(ctx context.Context, key string, fields ...string) SliceValuer

	// HKeys 哈希表获取某个Key的所有字段(field)
	HKeys(ctx context.Context, key string) StringSliceValuer

	// HVals 哈希表获取所有值
	HVals(ctx context.Context, key string) StringSliceValuer

	// HGetAll 获取哈希表的键跟值
	HGetAll(ctx context.Context, key string) MapStringStringValuer

	// HLen 哈希表所有字段的数量
	HLen(ctx context.Context, key string) IntValuer
}

Hash 哈希表

func NewRedisHashDriver

func NewRedisHashDriver(opt *RedisOptions) Hash

func NewRedisListDriver

func NewRedisListDriver(opt *RedisOptions) Hash

type IntValuer

type IntValuer interface {
	Val() int64
	Err() error

	Result() (int64, error)
}

IntValuer 整形数值接口

type List

type List interface {
	Common

	// LTrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
	//举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。
	//下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
	//你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
	LTrim(ctx context.Context, key string, start, stop int64) StatusValuer

	// LPush 将数据推入到列表中
	LPush(ctx context.Context, key string, data ...interface{}) IntValuer

	// LRang 提取列表范围内的数据
	LRang(ctx context.Context, key string, start, stop int64) StringSliceValuer

	// LPop 推出列表尾的最后数据
	LPop(ctx context.Context, key string) StringValuer

	// LBPop 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
	LBPop(ctx context.Context, timeout time.Duration, keys ...string) StringSliceValuer

	// LShift 推出列表头的第一个数据
	LShift(ctx context.Context, key string) StringValuer

	// LLen 获取list列表的长度
	LLen(ctx context.Context, key string) IntValuer
}

List 列表

type MapStringStringValuer

type MapStringStringValuer interface {
	Val() map[string]string
	Err() error
	Scan(dst interface{}) error

	Result() (map[string]string, error)
}

MapStringStringValuer 以string为键string为值的map

type Memory

type Memory struct {
	// contains filtered or unexported fields
}

Memory 内存驱动

func (*Memory) Del

func (m *Memory) Del(ctx context.Context, keys ...string) IntValuer

Del 删除一个或多个key

func (*Memory) Exists

func (m *Memory) Exists(ctx context.Context, keys ...string) IntValuer

Exists 判断某个Key是否存在

func (*Memory) Expire

func (m *Memory) Expire(ctx context.Context, key string, ttl time.Duration) BoolValuer

Expire 设置某个key的存活时间

func (*Memory) ExpireAt

func (m *Memory) ExpireAt(ctx context.Context, key string, at time.Time) BoolValuer

ExpireAt 设置某个key在指定时间内到期

func (*Memory) Get

func (m *Memory) Get(ctx context.Context, key string) StringValuer

Get 获取数据

func (*Memory) HDel

func (m *Memory) HDel(ctx context.Context, key string, fields ...string) IntValuer

HDel 哈希表删除指定字段(fields)

func (*Memory) HExists

func (m *Memory) HExists(ctx context.Context, key, field string) BoolValuer

HExists 检测field是否存在哈希表中

func (*Memory) HGet

func (m *Memory) HGet(ctx context.Context, key string, field string) StringValuer

HGet 哈希表获取一个数据

func (*Memory) HGetAll

func (m *Memory) HGetAll(ctx context.Context, key string) MapStringStringValuer

HGetAll 获取哈希表所有的数据,包括field跟value

func (*Memory) HKeys

func (m *Memory) HKeys(ctx context.Context, key string) StringSliceValuer

HKeys 哈希表获取某个Key的所有字段(field)

func (*Memory) HLen

func (m *Memory) HLen(ctx context.Context, key string) IntValuer

HLen 哈希表所有字段的数量

func (*Memory) HMGet

func (m *Memory) HMGet(ctx context.Context, key string, fields ...string) SliceValuer

HMGet 哈希表获取多个数据

func (*Memory) HSet

func (m *Memory) HSet(ctx context.Context, key string, data ...interface{}) IntValuer

HSet 哈希表设置数据

func (*Memory) HSetNX

func (m *Memory) HSetNX(ctx context.Context, key, field string, data interface{}) BoolValuer

HSetNX 如果哈希表的field不存在,则设置成功

func (*Memory) HVals

func (m *Memory) HVals(ctx context.Context, key string) StringSliceValuer

HVals 哈希表获取所有值

func (*Memory) LBPop added in v2.1.3

func (m *Memory) LBPop(ctx context.Context, timeout time.Duration, keys ...string) StringSliceValuer

LBPop 推出列表尾的最后数据

func (*Memory) LLen

func (m *Memory) LLen(ctx context.Context, key string) IntValuer

LLen 获取列表长度

func (*Memory) LPop

func (m *Memory) LPop(ctx context.Context, key string) StringValuer

LPop 推出列表尾的最后数据

func (*Memory) LPush

func (m *Memory) LPush(ctx context.Context, key string, data ...interface{}) IntValuer

LPush 将数据推入到列表中

func (*Memory) LRang

func (m *Memory) LRang(ctx context.Context, key string, start, stop int64) StringSliceValuer

LRang 提取列表范围内的数据

func (*Memory) LShift

func (m *Memory) LShift(ctx context.Context, key string) StringValuer

LShift 推出列表头的第一个数据

func (*Memory) LTrim

func (m *Memory) LTrim(ctx context.Context, key string, start, stop int64) StatusValuer

LTrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

func (*Memory) MGet

func (m *Memory) MGet(ctx context.Context, keys ...string) SliceValuer

MGet 获取数据

func (*Memory) Persist

func (m *Memory) Persist(ctx context.Context, key string) BoolValuer

Persist 删除key的过期时间,并设置成持久性 注意,持久化后最长也也不会超过 ValueMaxTTL

func (*Memory) Set

func (m *Memory) Set(ctx context.Context, key string, data interface{}, expiration time.Duration) StatusValuer

Set 设置数据

func (*Memory) SetNX

func (m *Memory) SetNX(ctx context.Context, key string, data interface{}, expiration time.Duration) BoolValuer

SetNX 设置数据,如果key不存在的话

func (*Memory) ZAdd added in v2.1.2

func (m *Memory) ZAdd(ctx context.Context, key string, members ...Z) IntValuer

ZAdd 添加有序集合的元素

func (*Memory) ZCard added in v2.1.2

func (m *Memory) ZCard(ctx context.Context, key string) IntValuer

ZCard 获取有序集合的元素数量

func (*Memory) ZCount added in v2.1.2

func (m *Memory) ZCount(ctx context.Context, key, min, max string) IntValuer

ZCount 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量。

func (*Memory) ZIncrBy added in v2.1.2

func (m *Memory) ZIncrBy(ctx context.Context, key string, increment float64, member string) FloatValuer

ZIncrBy 为有序集 key 的成员 member 的 score 值加上增量 increment 。 可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 @return member 成员的新 score 值

func (*Memory) ZRange added in v2.1.2

func (m *Memory) ZRange(ctx context.Context, key string, start, stop int64) StringSliceValuer

ZRange 返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递增(从小到大)来排序。 具有相同 score 值的成员按字典序(lexicographical order )来排列。 如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE 命令。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*Memory) ZRangeByScore added in v2.1.2

func (m *Memory) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) StringSliceValuer

ZRangeByScore 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。 具有相同 score 值的成员按字典序(lexicographical order)来排列(该属性是有序集提供的,不需要额外的计算)。 可选的 LIMIT 参数指定返回结果的数量及区间(就像SQL中的 SELECT LIMIT offset, count ),注意当 offset 很大时,定位 offset 的操作可能需要遍历整个有序集,此过程最坏复杂度为 O(N) 时间。

func (*Memory) ZRank added in v2.1.2

func (m *Memory) ZRank(ctx context.Context, key, member string) IntValuer

ZRank 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。 排名以 0 为底,也就是说, score 值最小的成员排名为 0 。

func (*Memory) ZRem added in v2.1.2

func (m *Memory) ZRem(ctx context.Context, key string, members ...interface{}) IntValuer

ZRem 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。 @return 被成功移除的成员的数量,不包括被忽略的成员

func (*Memory) ZRemRangeByRank added in v2.1.2

func (m *Memory) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) IntValuer

ZRemRangeByRank 移除有序集 key 中,指定排名(rank)区间内的所有成员。 区间分别以下标参数 start 和 stop 指出,包含 start 和 stop 在内。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*Memory) ZRemRangeByScore added in v2.1.2

func (m *Memory) ZRemRangeByScore(ctx context.Context, key, min, max string) IntValuer

ZRemRangeByScore 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。 有序集成员按 score 值递增(从小到大)次序排列。

func (*Memory) ZRevRange added in v2.1.2

func (m *Memory) ZRevRange(ctx context.Context, key string, start, stop int64) StringSliceValuer

ZRevRange 返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递减(从大到小)来排列。 具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。

func (*Memory) ZRevRank added in v2.1.2

func (m *Memory) ZRevRank(ctx context.Context, key, member string) IntValuer

ZRevRank 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序。 排名以 0 为底,也就是说, score 值最大的成员排名为 0 。

func (*Memory) ZScore added in v2.1.2

func (m *Memory) ZScore(ctx context.Context, key, member string) FloatValuer

ZScore 返回有序集 key 中,成员 member 的 score 值。 如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。

type MemoryConfig added in v2.1.4

type MemoryConfig struct {
	// Prefix 业务名前缀,如果用于隔离不同业务
	Prefix string

	// Port 如果打算启用多个驱动,请分别设置多个不冲突的IP用于启动服务
	Port int

	// Username 用户名
	Username string

	// Password 密码
	Password string

	// EtcdConfig 用于启用ETCD的服务
	EtcdConfig EtcdConfig

	// Context 上下文
	Context context.Context
}

MemoryConfig 内存配置

type Redis

type Redis struct {
	// contains filtered or unexported fields
}

Redis 驱动器

func (*Redis) Del

func (r *Redis) Del(ctx context.Context, keys ...string) IntValuer

Del 删除一个或多个key

func (*Redis) Exists

func (r *Redis) Exists(ctx context.Context, keys ...string) IntValuer

Exists 判断某个Key是否存在

func (*Redis) Expire

func (r *Redis) Expire(ctx context.Context, key string, ttl time.Duration) BoolValuer

Expire 设置某个key的存活时间

func (*Redis) ExpireAt

func (r *Redis) ExpireAt(ctx context.Context, key string, at time.Time) BoolValuer

ExpireAt 设置某个key在指定时间内到期

func (*Redis) Get

func (r *Redis) Get(ctx context.Context, key string) StringValuer

Get 获取数据

func (*Redis) HDel

func (r *Redis) HDel(ctx context.Context, key string, fields ...string) IntValuer

HDel 哈希表删除指定字段(fields)

func (*Redis) HExists

func (r *Redis) HExists(ctx context.Context, key, field string) BoolValuer

HExists 判断哈希表的field是否存在

func (*Redis) HGet

func (r *Redis) HGet(ctx context.Context, key string, field string) StringValuer

HGet 哈希表获取一个数据

func (*Redis) HGetAll

func (r *Redis) HGetAll(ctx context.Context, key string) MapStringStringValuer

HGetAll 哈希表获取所有值,包括field跟value

func (*Redis) HKeys

func (r *Redis) HKeys(ctx context.Context, key string) StringSliceValuer

HKeys 哈希表获取某个Key的所有字段(field)

func (*Redis) HLen

func (r *Redis) HLen(ctx context.Context, key string) IntValuer

HLen 哈希表所有字段的数量

func (*Redis) HMGet

func (r *Redis) HMGet(ctx context.Context, key string, fields ...string) SliceValuer

HMGet 哈希表获取多个数据

func (*Redis) HSet

func (r *Redis) HSet(ctx context.Context, key string, data ...interface{}) IntValuer

HSet 哈希表设置数据

func (*Redis) HSetNX

func (r *Redis) HSetNX(ctx context.Context, key, field string, data interface{}) BoolValuer

HSetNX 设置哈希表field对应的值,当field不存在时才能成功

func (*Redis) HVals

func (r *Redis) HVals(ctx context.Context, key string) StringSliceValuer

HVals 哈希表获取所有值

func (*Redis) LBPop added in v2.1.3

func (r *Redis) LBPop(ctx context.Context, timeout time.Duration, keys ...string) StringSliceValuer

LBPop 推出列表尾的最后数据

func (*Redis) LLen

func (r *Redis) LLen(ctx context.Context, key string) IntValuer

LLen 获取列表的长度

func (*Redis) LPop

func (r *Redis) LPop(ctx context.Context, key string) StringValuer

LPop 推出列表尾的最后数据

func (*Redis) LPush

func (r *Redis) LPush(ctx context.Context, key string, data ...interface{}) IntValuer

LPush 将数据推入到列表中

func (*Redis) LRang

func (r *Redis) LRang(ctx context.Context, key string, start, stop int64) StringSliceValuer

LRang 提取列表范围内的数据

func (*Redis) LShift

func (r *Redis) LShift(ctx context.Context, key string) StringValuer

LShift 推出列表头的第一个数据

func (*Redis) LTrim

func (r *Redis) LTrim(ctx context.Context, key string, start, stop int64) StatusValuer

LTrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

func (*Redis) MGet

func (r *Redis) MGet(ctx context.Context, keys ...string) SliceValuer

MGet 获取多个key的数据

func (*Redis) Persist

func (r *Redis) Persist(ctx context.Context, key string) BoolValuer

Persist 移除某个key的TTL,设置成持久性

func (*Redis) Set

func (r *Redis) Set(ctx context.Context, key string, data interface{}, ttl time.Duration) StatusValuer

Set 设置数据

func (*Redis) SetNX

func (r *Redis) SetNX(ctx context.Context, key string, data interface{}, ttl time.Duration) BoolValuer

SetNX 如果key不存在才设置数据

func (*Redis) ZAdd added in v2.1.2

func (r *Redis) ZAdd(ctx context.Context, key string, members ...Z) IntValuer

ZAdd 添加有序集合的元素

func (*Redis) ZCard added in v2.1.2

func (r *Redis) ZCard(ctx context.Context, key string) IntValuer

ZCard 获取有序集合的元素数量

func (*Redis) ZCount added in v2.1.2

func (r *Redis) ZCount(ctx context.Context, key, min, max string) IntValuer

ZCount 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量。

func (*Redis) ZIncrBy added in v2.1.2

func (r *Redis) ZIncrBy(ctx context.Context, key string, increment float64, member string) FloatValuer

ZIncrBy 为有序集 key 的成员 member 的 score 值加上增量 increment 。 可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 @return member 成员的新 score 值

func (*Redis) ZRange added in v2.1.2

func (r *Redis) ZRange(ctx context.Context, key string, start, stop int64) StringSliceValuer

ZRange 返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递增(从小到大)来排序。 具有相同 score 值的成员按字典序(lexicographical order )来排列。 如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE 命令。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*Redis) ZRangeByScore added in v2.1.2

func (r *Redis) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) StringSliceValuer

ZRangeByScore 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。 具有相同 score 值的成员按字典序(lexicographical order)来排列(该属性是有序集提供的,不需要额外的计算)。 可选的 LIMIT 参数指定返回结果的数量及区间(就像SQL中的 SELECT LIMIT offset, count ),注意当 offset 很大时,定位 offset 的操作可能需要遍历整个有序集,此过程最坏复杂度为 O(N) 时间。

func (*Redis) ZRank added in v2.1.2

func (r *Redis) ZRank(ctx context.Context, key, member string) IntValuer

ZRank 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。 排名以 0 为底,也就是说, score 值最小的成员排名为 0 。

func (*Redis) ZRem added in v2.1.2

func (r *Redis) ZRem(ctx context.Context, key string, members ...interface{}) IntValuer

ZRem 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。 @return 被成功移除的成员的数量,不包括被忽略的成员

func (*Redis) ZRemRangeByRank added in v2.1.2

func (r *Redis) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) IntValuer

ZRemRangeByRank 移除有序集 key 中,指定排名(rank)区间内的所有成员。 区间分别以下标参数 start 和 stop 指出,包含 start 和 stop 在内。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*Redis) ZRemRangeByScore added in v2.1.2

func (r *Redis) ZRemRangeByScore(ctx context.Context, key, min, max string) IntValuer

ZRemRangeByScore 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。 有序集成员按 score 值递增(从小到大)次序排列。

func (*Redis) ZRevRange added in v2.1.2

func (r *Redis) ZRevRange(ctx context.Context, key string, start, stop int64) StringSliceValuer

ZRevRange 返回有序集 key 中,指定区间内的成员。 其中成员的位置按 score 值递减(从大到小)来排列。 具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。

func (*Redis) ZRevRank added in v2.1.2

func (r *Redis) ZRevRank(ctx context.Context, key, member string) IntValuer

ZRevRank 返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序。 排名以 0 为底,也就是说, score 值最大的成员排名为 0 。

func (*Redis) ZScore added in v2.1.2

func (r *Redis) ZScore(ctx context.Context, key, member string) FloatValuer

ZScore 返回有序集 key 中,成员 member 的 score 值。 如果 member 元素不是有序集 key 的成员,或 key 不存在,返回 nil 。

type RedisConfig

type RedisConfig struct {
	// Mode 模式
	// 支持:single,sentinel,cluster
	Mode       string   `yaml:"mode"`
	MasterName string   `yaml:"master_name"`
	Addrs      []string `yaml:"addrs"`
	Database   string   `yaml:"database"`
	Username   string   `yaml:"username"`
	Password   string   `yaml:"password"`
}

type RedisOptions

type RedisOptions struct {
	Config *RedisConfig
	Client redis.UniversalClient
}

func NewRedisOptionsWithClient

func NewRedisOptionsWithClient(cli redis.UniversalClient) *RedisOptions

func NewRedisOptionsWithConfig

func NewRedisOptionsWithConfig(cfg *RedisConfig) *RedisOptions

type SZ added in v2.1.2

type SZ struct {
	Member string
	Score  float64
}

type SliceValuer

type SliceValuer interface {
	Val() []interface{}
	Err() error
	Scan(dst interface{}) error

	Result() ([]interface{}, error)
}

SliceValuer 切片数值接口

type SortedSet added in v2.1.2

type SortedSet interface {
	Common

	ZAdd(ctx context.Context, key string, members ...Z) IntValuer

	ZCard(ctx context.Context, key string) IntValuer

	ZCount(ctx context.Context, key, min, max string) IntValuer

	ZIncrBy(ctx context.Context, key string, incr float64, member string) FloatValuer

	ZRange(ctx context.Context, key string, start, stop int64) StringSliceValuer

	ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) StringSliceValuer

	ZRank(ctx context.Context, key, member string) IntValuer

	ZRem(ctx context.Context, key string, members ...interface{}) IntValuer

	ZRemRangeByRank(ctx context.Context, key string, start, stop int64) IntValuer

	ZRemRangeByScore(ctx context.Context, key, min, max string) IntValuer

	ZRevRange(ctx context.Context, key string, start, stop int64) StringSliceValuer

	ZRevRank(ctx context.Context, key, member string) IntValuer

	ZScore(ctx context.Context, key, member string) FloatValuer
}

SortedSet 排序集合

type StatusValuer

type StatusValuer interface {
	Val() string
	Err() error

	Result() (string, error)
}

StatusValuer 状态数值接口

type String

type String interface {
	Common

	// Set 设置数据
	Set(ctx context.Context, key string, data interface{}, ttl time.Duration) StatusValuer

	// SetNX 如果key不存在才设置数据
	SetNX(ctx context.Context, key string, data interface{}, ttl time.Duration) BoolValuer

	// Get 获取数据
	Get(ctx context.Context, key string) StringValuer

	// MGet 获取多个key的数据
	MGet(ctx context.Context, keys ...string) SliceValuer
}

String 字符串

func NewRedisString

func NewRedisString(opt *RedisOptions) String

func NewStringMemory

func NewStringMemory() String

NewStringMemory 实例化一个仅带字符串存储功能的内存核心缓存驱动

type StringSliceValuer

type StringSliceValuer interface {
	Val() []string
	Err() error
	ScanSlice(container interface{}) error

	Result() ([]string, error)
}

StringSliceValuer 字符串切片数值接口

type StringValuer

type StringValuer interface {
	Val() string
	Err() error
	Scan(dst interface{}) error

	Bytes() ([]byte, error)
	Bool() (bool, error)
	Int() (int, error)
	Int64() (int64, error)
	Uint64() (uint64, error)
	Float32() (float32, error)
	Float64() (float64, error)
	Time() (time.Time, error)

	Result() (string, error)
}

StringValuer 字符串数值接口

type Z added in v2.1.0

type Z = redis.Z

type ZRangeBy added in v2.1.2

type ZRangeBy = redis.ZRangeBy

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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