modulepackage
0.0.0-20200912121113-c6def774e8b6
Repository: https://github.com/wencan/cachex.git
Documentation: pkg.go.dev
# README
cachex
Go业务层缓存中间件,自带内存LRU存储和Redis存储支持,并支持自定义存储后端
工作机制
cachex由两部分组成:查询引擎和存储后端。
用户逻辑通过查询引擎向存储后端查询缓存,如果查到返回缓存的结果;否则查询引擎调用查询接口获取新的结果,将新结果存储到存储后端,并返回给用户逻辑。
特性
-
支持内存LRU存储、Redis存储,支持自定义存储实现
-
通过哨兵机制解决了单实例内的缓存失效风暴问题
-
支持缓存TTL、查询接口失败返回过期的结果(均需要存储后端支持)
# Packages
No description provided by the author
Package mock_cachex is a generated GoMock package.
No description provided by the author
# Functions
GetQueryOption 为Get操作定制查询过程。.
GetTTLOption 为Get操作定制TTL。 需要存储后端支持,否则报错。.
NewCachex 新建缓存处理对象.
NewSentinel 新建哨兵.
# Variables
ErrNoResult 无结果错误。 消费者等待到的结果无value无err时(生产者panic或编码错误),将会得到该错误。.
ErrNotFound 没找到.
ErrNotSupported 操作不支持.
# Structs
Cachex 缓存处理类.
GetOption Get方法的可选参数项结构,不需要直接调用。.
NopStorage 一个什么都不干的存储后端。 可以用NopStorage加CacheX组合出一个单实例内不重复查询的机制。.
Sentinel 哨兵。一个生产者,多个消费者等待生产者完成并提交结果.
# Interfaces
ClearableStorage 支持清理操作的存储后端接口.
DeletableStorage 支持删除操作的存储后端接口.
Expired 已过期错误接口.
Keyable 如果需要包装多个参数为key,包装结构体实现该接口,以支持获取包装结构体的缓存Key。.
NotFound 没找到错误接口。 需要存储后端找不到缓存时,返回一个实现了NotFound接口的错误。.
Querier 查询接口.
SetWithTTLableStorage 支持定制TTL的存储后端接口.
Storage 存储后端接口.
# Type aliases
QueryFunc 查询过程签名.