Versions in this module Expand all Collapse all v0 v0.0.2 Jun 27, 2020 v0.0.1 Jun 26, 2020 Changes in this version + var ErrBufExceeded = ErrXCache.New("现有的缓存超过了最大的缓存限制") + var ErrBufSize = ErrXCache.New("现有的缓存超过了最大的限度或者小于最小的限度") + var ErrClearNum = ErrXCache.New("定时清理过期缓存数量错误") + var ErrClearTime = ErrXCache.New("定时清理过期缓存时间错误") + var ErrDataLoadTime = ErrXCache.New("数据加载函数时间设置错误") + var ErrDataLoadTimeout = ErrXCache.New("数据加载超时") + var ErrExpiration = ErrXCache.New("过期时间超过了最大的过期时间或者小于最小的过期时间") + var ErrKeyNotFound = ErrXCache.New("key不存在") + var ErrLength = ErrXCache.New("数据超过了最大的长度限度或者小于最小的长度限度") + var ErrXCache = xerror.New("xcache error") + func Delete(k []byte) error + func DeleteExpired() error + func Get(k []byte) ([]byte, error) + func GetSet(k []byte, v []byte, e time.Duration) ([]byte, error) + func GetWithDataLoad(k []byte, e time.Duration, fn ...func(k []byte) (v []byte, err error)) ([]byte, error) + func Init(opts ...Option) error + func New(opts ...Option) (*xcache, error) + func Set(k []byte, v []byte, e time.Duration) error + type IXCache interface + Delete func(k []byte) error + DeleteExpired func() error + Get func(k []byte) ([]byte, error) + GetSet func(k, v []byte, e time.Duration) ([]byte, error) + GetWithDataLoad func(k []byte, e time.Duration, fn ...func(k []byte) (v []byte, err error)) ([]byte, error) + Init func(opts ...Option) error + Option func() Options + Set func(k, v []byte, e time.Duration) error + type MemClearStrategy uint8 + type Option func(o *Options) + func WithBreakdownStrategy(breakdownStrategy func([]byte, []byte, time.Duration) ([]byte, time.Duration)) Option + func WithClearNum(clearRate float32) Option + func WithClearTime(clearTime time.Duration) Option + func WithDataLoadTime(mataLoadTime time.Duration) Option + func WithDefaultExpiration(defaultExpiration time.Duration) Option + func WithMaxDataSize(maxDataSize int) Option + func WithMaxExpiration(maxExpiration time.Duration) Option + func WithMinBufSize(minBufSize int) Option + func WithMinDataSize(minDataSize int) Option + func WithMinExpiration(minExpiration time.Duration) Option + func WithPenetrateStrategy(...) Option + func WithSnowSlideStrategy(snowSlideStrategy func(expired time.Duration) time.Duration) Option + type Options struct + BreakdownStrategy func([]byte, []byte, time.Duration) ([]byte, time.Duration) + ClearRate float32 + ClearTime time.Duration + DataLoadTime time.Duration + DefaultExpiration time.Duration + Delimiter string + Interval time.Duration + MaxBufSize uint32 + MaxDataSize int + MaxExpiration time.Duration + MaxKeySize int + MinBufSize int + MinDataSize int + MinExpiration time.Duration + PenetrateStrategy func(k []byte, fn ...func(k []byte) ([]byte, error)) ([]byte, error) + SnowSlideStrategy func(expired time.Duration) time.Duration + func GetOption() Options