Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewModelCacheSvc ¶
Types ¶
type ICacheModel ¶
type ICacheModel interface { // 缓存信息 CacheInfo() common.ICacheInfo // model序列化方法,通过该方法可以获取到缓存的内容 Marshal() (string, error) // model反序列化反方, 将缓存的内容反序列化到model中 UnMarshal(value string) error // 获取原始非缓存数据, 当数据不存在时需返回ErrNoData // ErrNoData搭配WithNeedCacheNoData可预防缓存穿透 GetOri() (ICacheModel, error) }
ICacheModel 通过组件可以获取到的单个model的抽象
type ICanMGetModel ¶
type ICanMGetModel interface { // CacheInfo 缓存信息 // TODO: 如果使用hash作为缓存,批量获取时,需保证hash的key一致,暂不支持从多个hash的key中获取数据 CacheInfo() common.ICacheInfo // model序列化方法,通过该方法可以获取到缓存的内容 Marshal() (string, error) // model反序列化反方, 将缓存的内容反序列化到model中 // TODO value=""代表缓存了空数据,此时反序列化后续特殊标示下 UnMarshal(value string) error // UpdateSelf 通过接口更新自身, model == nil代表数据不存在,以方法形式提供对本身的更新操作,代替使用反射操作,提高性能 UpdateSelf(model ICanMGetModel) // Clone 深拷贝方法 Clone() ICanMGetModel }
ICanMGetModel 通过组件可以批量获取的单个model的抽象
type MCOption ¶
type MCOption struct {
// contains filtered or unexported fields
}
MCOption model缓存可选项
func NewMCOption ¶
func NewMCOption(opts ...MCOptionWrap) *MCOption
type MCOptionWrap ¶
type MCOptionWrap func(o *MCOption)
func WithGetFromRdsCallBack ¶
func WithGetFromRdsCallBack(cb func()) MCOptionWrap
WithGetFromRdsCallBack 注册从redis获取数据时的回调
func WithHotKeyOption ¶
func WithHotKeyOption(option *common.HotKeyOption) MCOptionWrap
WithHotKeyOption 注册从redis获取数据时的回调
func WithLock ¶
func WithLock(lock sync.Locker) MCOptionWrap
func WithNeedCacheNoData ¶
func WithNeedCacheNoData() MCOptionWrap
type MGetOption ¶
type MGetOption struct {
// contains filtered or unexported fields
}
MGetOption 批量获取时的可选参数
func NewMGetOption ¶
func NewMGetOption(opts ...MGetOptionWrap) *MGetOption
type MGetOptionWrap ¶
type MGetOptionWrap func(o *MGetOption)
func WithMGetNeedCacheNoData ¶
func WithMGetNeedCacheNoData() MGetOptionWrap
Click to show internal directories.
Click to hide internal directories.