scache

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Sep 29, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrClientNil error = errors.New("redis client is nil")

Redis客户端空

View Source
var ErrKeyFnNil error = errors.New("key generater is nil")
View Source
var ErrKeyFormat error = errors.New("key format error")
View Source
var ErrKeyGenerate error = errors.New("key generate error")
View Source
var ErrPrefixNil error = errors.New("key prefix is nil")

Functions

func DefaultClient

func DefaultClient() *redis.Client

DefaultClient 获取默认的客户端

func DefaultRedisLocker

func DefaultRedisLocker(client *redis.Client, biz string) locker.Locker

DefaultRedisLocker 创建基于Redis的分布式锁

func ExecLogError added in v0.1.1

func ExecLogError(ctx context.Context, fn meta.RedisExecLogFunc, stime time.Time, args interface{}, e error) error

ExecLogError 记录调用日志

func GetClient

func GetClient(name string) (*redis.Client, error)

GetClient 获取Redis池链接中的链接

func NewClient

func NewClient(cfg Config) (*redis.Client, error)

NewClient 初始化 创建新的Redis链接 默认会加入连接池

func NewDefaultClient

func NewDefaultClient(cfg Config) error

NewDefaultClient 创建默认的Redis链接

func RedisLockerAdder added in v0.1.1

func RedisLockerAdder(a RedisKeyValueNX, expire time.Duration) locker.LockerAdder

RedisLockerWriter

func RedisLockerDeleter

func RedisLockerDeleter(d RedisKeyValueDeleter) locker.LockerDeleter

RedisLockerDeleter

func SetDefaultClient

func SetDefaultClient(c *redis.Client)

SetDefaultClient 设置默认链接 未加锁,需要程序启动时初始化

Types

type Config

type Config struct {
	Name     string // instance name
	Addr     string // host:port address.
	Username string // username
	Password string // password
	DB       int    // selected db
	PoolSize int    // connection pool size, must > 3
}

Config Redis配置

type Pair

type Pair struct {
	Key   string
	Value string
}

Pair 键值对

type RedisKeyGenerator

type RedisKeyGenerator func(param interface{}) (string, error)

RedisKeyGenerator Redis Key生成

type RedisKeyValueDeleter

type RedisKeyValueDeleter func(ctx context.Context, param interface{}) error

Redis K-V类型删除

参数param支持以下4种类型:

string: 需要和prefix参数配合
[]string: 需要和prefix参数配合
实现接口ForEach:需要和KeyFn参数配合
其他值:需要和KeyFn参数配合

func NewRedisKeyValueDeleter

func NewRedisKeyValueDeleter(hands ...RedisOptionHandler) RedisKeyValueDeleter

NewRedisKeyValueDeleter 缓存删除

type RedisKeyValueNX added in v0.1.1

type RedisKeyValueNX func(ctx context.Context, params interface{}, expire time.Duration) bool

RedisKeyValueNX Redis SetNX

func NewReaderSetNX added in v0.1.1

func NewReaderSetNX(hands ...RedisOptionHandler) RedisKeyValueNX

type RedisKeyValueObjectReader

type RedisKeyValueObjectReader func(ctx context.Context, params interface{}, out interface{}) error

Redis K-V类型读取

func NewRedisKeyValueObjectReader

func NewRedisKeyValueObjectReader(hands ...RedisOptionHandler) RedisKeyValueObjectReader

NewRedisKeyValueReader 自定义Redis读取

type RedisKeyValueStringReader

type RedisKeyValueStringReader func(ctx context.Context, params interface{}) (interface{}, error)

Redis K-V类型读取

func NewRedisKeyValueStringReader

func NewRedisKeyValueStringReader(hands ...RedisOptionHandler) RedisKeyValueStringReader

NewRedisKeyValueReader 自定义Redis读取

type RedisKeyValueWriter

type RedisKeyValueWriter func(ctx context.Context, params interface{}, expire time.Duration) error

Redis K-V类型写入

func NewRedisKeyValueWriter

func NewRedisKeyValueWriter(hands ...RedisOptionHandler) RedisKeyValueWriter

NewRedisKeyValueWriter 创建新的缓存写入

type RedisListObjectReader

type RedisListObjectReader func(context.Context, interface{}) error

RedisListObjectReader Redis List类型读取,每次读取一个值,返回结果为对象

func NewRedisListObjectReader

func NewRedisListObjectReader(hands ...RedisOptionHandler) RedisListObjectReader

NewRedisListObjectReader 创建新的Redis List对象读取,读取器返回值为对象

type RedisListStringReader

type RedisListStringReader func(context.Context) (string, error)

RedisListStringReader Redis List类型读取,每次读取一个值,返回结果为字符串

func NewRedisListStringReader

func NewRedisListStringReader(hands ...RedisOptionHandler) RedisListStringReader

NewRedisListReader 创建新的Redis队列读取,读取器返回值为字符串

type RedisListWriter

type RedisListWriter func(context.Context, interface{}) error

string:需要和prefix配合,自动写入key为【prefix】的List中 []string: 需要和prefix配合,自动写入key为【prefix】的List中 Pair:需要和prefix配合,写入key为【prefix+p.Key】的List中 []Pair:需要和prefix配合,写入key为【prefix+p.Key】的List中 实现接口ForEach:需要和KeyFn参数配合,每个元素通过KeyFn计算key,然后写入对应的List中,值经过json序列化 其他值:需要和KeyFn参数配合,通过KeyFn计算key,然后写入【key】的List中

func NewRedisListWriter

func NewRedisListWriter(hands ...RedisOptionHandler) RedisListWriter

NewRedisListWriter 创建新的Redis队列写入对象

type RedisOptionHandler

type RedisOptionHandler func(*RedisOptions)

RedisOptionHandler 配置选项

func WithClient

func WithClient(client *redis.Client) RedisOptionHandler

WithClient 配置客户端实例

func WithExecLogger added in v0.1.1

func WithExecLogger(fn meta.RedisExecLogFunc) RedisOptionHandler

WithPrefix 配置KEY前缀

func WithKeyFn

WithKeyFn 配置KEY生成方法

func WithPrefix

func WithPrefix(pre string) RedisOptionHandler

WithPrefix 配置KEY前缀

type RedisOptions

type RedisOptions struct {
	KeyFn     RedisKeyGenerator
	Prefix    string
	Client    *redis.Client
	ExecLogFn meta.RedisExecLogFunc
}

选项

func DefaultRedisOptions

func DefaultRedisOptions() RedisOptions

创建默认的Redis配置

Jump to

Keyboard shortcuts

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