Documentation
¶
Index ¶
- Variables
- type ARC
- func (c *ARC) EvictType() EvictType
- func (c *ARC) Get(key any) (any, error)
- func (c *ARC) GetALL(checkExpired bool) map[any]any
- func (c *ARC) Has(key any) bool
- func (c *ARC) Keys(checkExpired bool) []any
- func (c *ARC) Len(checkExpired bool) int
- func (c *ARC) Purge()
- func (c *ARC) Remove(key any) bool
- func (c *ARC) Set(key, value any) error
- func (c *ARC) SetWithExpire(key, value any, expiration time.Duration) error
- type AddedFunc
- type Cache
- type CacheBuilder
- func (cb *CacheBuilder) ARC() *CacheBuilder
- func (cb *CacheBuilder) AddedFunc(addedFunc AddedFunc) *CacheBuilder
- func (cb *CacheBuilder) Build() Cache
- func (cb *CacheBuilder) Clock(clock Clock) *CacheBuilder
- func (cb *CacheBuilder) DeserializeFunc(deserializeFunc DeserializeFunc) *CacheBuilder
- func (cb *CacheBuilder) EvictType(tp EvictType) *CacheBuilder
- func (cb *CacheBuilder) EvictedFunc(evictedFunc EvictedFunc) *CacheBuilder
- func (cb *CacheBuilder) Expiration(expiration time.Duration) *CacheBuilder
- func (cb *CacheBuilder) LFU() *CacheBuilder
- func (cb *CacheBuilder) LRU() *CacheBuilder
- func (cb *CacheBuilder) LoaderExpireFunc(loaderExpireFunc LoaderExpireFunc) *CacheBuilder
- func (cb *CacheBuilder) LoaderFunc(loaderFunc LoaderFunc) *CacheBuilder
- func (cb *CacheBuilder) PurgeVisitorFunc(purgeVisitorFunc PurgeVisitorFunc) *CacheBuilder
- func (cb *CacheBuilder) SerializeFunc(serializeFunc SerializeFunc) *CacheBuilder
- func (cb *CacheBuilder) Simple() *CacheBuilder
- type Clock
- type DeserializeFunc
- type EvictType
- type EvictedFunc
- type FakeClock
- type LFUCache
- func (c *LFUCache) EvictType() EvictType
- func (c *LFUCache) Get(key any) (any, error)
- func (c *LFUCache) GetALL(checkExpired bool) map[any]any
- func (c *LFUCache) Has(key any) bool
- func (c *LFUCache) Keys(checkExpired bool) []any
- func (c *LFUCache) Len(checkExpired bool) int
- func (c *LFUCache) Purge()
- func (c *LFUCache) Remove(key any) bool
- func (c *LFUCache) Set(key, value any) error
- func (c *LFUCache) SetWithExpire(key, value any, expiration time.Duration) error
- type LRUCache
- func (c *LRUCache) EvictType() EvictType
- func (c *LRUCache) Get(key any) (any, error)
- func (c *LRUCache) GetALL(checkExpired bool) map[any]any
- func (c *LRUCache) Has(key any) bool
- func (c *LRUCache) Keys(checkExpired bool) []any
- func (c *LRUCache) Len(checkExpired bool) int
- func (c *LRUCache) Purge()
- func (c *LRUCache) Remove(key any) bool
- func (c *LRUCache) Set(key, value any) error
- func (c *LRUCache) SetWithExpire(key, value any, expiration time.Duration) error
- type LoaderExpireFunc
- type LoaderFunc
- type PurgeVisitorFunc
- type RealClock
- type SerializeFunc
- type SimpleCache
- func (c *SimpleCache) EvictType() EvictType
- func (c *SimpleCache) Get(key any) (any, error)
- func (c *SimpleCache) GetALL(checkExpired bool) map[any]any
- func (c *SimpleCache) Has(key any) bool
- func (c *SimpleCache) Keys(checkExpired bool) []any
- func (c *SimpleCache) Len(checkExpired bool) int
- func (c *SimpleCache) Purge()
- func (c *SimpleCache) Remove(key any) bool
- func (c *SimpleCache) Set(key, value any) error
- func (c *SimpleCache) SetWithExpire(key, value any, expiration time.Duration) error
Constants ¶
This section is empty.
Variables ¶
var ErrKeyNotFoundError = errors.New("key not found")
Functions ¶
This section is empty.
Types ¶
type ARC ¶
type ARC struct {
// contains filtered or unexported fields
}
Constantly balances between LRU and LFU, to improve the combined result.
func (*ARC) Get ¶
Get a value from cache pool using key if it exists. If not exists and it has LoaderFunc, it will generate the value using you have specified LoaderFunc method returns value.
type Cache ¶
type Cache interface {
EvictType() EvictType
// Set inserts or updates the specified key-value pair.
Set(key, value any) error
// SetWithExpire inserts or updates the specified key-value pair with an expiration time.
SetWithExpire(key, value any, expiration time.Duration) error
// Get returns the value for the specified key if it is present in the cache.
// If the key is not present in the cache and the cache has LoaderFunc,
// invoke the `LoaderFunc` function and inserts the key-value pair in the cache.
// If the key is not present in the cache and the cache does not have a LoaderFunc,
// return KeyNotFoundError.
Get(key any) (any, error)
// GetAll returns a map containing all key-value pairs in the cache.
GetALL(checkExpired bool) map[any]any
// Remove removes the specified key from the cache if the key is present.
// Returns true if the key was present and the key has been deleted.
Remove(key any) bool
// Purge removes all key-value pairs from the cache.
Purge()
// Keys returns a slice containing all keys in the cache.
Keys(checkExpired bool) []any
// Len returns the number of items in the cache.
Len(checkExpired bool) int
// Has returns true if the key exists in the cache.
Has(key any) bool
// contains filtered or unexported methods
}
type CacheBuilder ¶
type CacheBuilder struct {
// contains filtered or unexported fields
}
func New ¶
func New(size int) *CacheBuilder
func (*CacheBuilder) ARC ¶
func (cb *CacheBuilder) ARC() *CacheBuilder
func (*CacheBuilder) AddedFunc ¶
func (cb *CacheBuilder) AddedFunc(addedFunc AddedFunc) *CacheBuilder
func (*CacheBuilder) Build ¶
func (cb *CacheBuilder) Build() Cache
func (*CacheBuilder) Clock ¶
func (cb *CacheBuilder) Clock(clock Clock) *CacheBuilder
func (*CacheBuilder) DeserializeFunc ¶
func (cb *CacheBuilder) DeserializeFunc(deserializeFunc DeserializeFunc) *CacheBuilder
func (*CacheBuilder) EvictType ¶
func (cb *CacheBuilder) EvictType(tp EvictType) *CacheBuilder
func (*CacheBuilder) EvictedFunc ¶
func (cb *CacheBuilder) EvictedFunc(evictedFunc EvictedFunc) *CacheBuilder
func (*CacheBuilder) Expiration ¶
func (cb *CacheBuilder) Expiration(expiration time.Duration) *CacheBuilder
func (*CacheBuilder) LFU ¶
func (cb *CacheBuilder) LFU() *CacheBuilder
func (*CacheBuilder) LRU ¶
func (cb *CacheBuilder) LRU() *CacheBuilder
func (*CacheBuilder) LoaderExpireFunc ¶
func (cb *CacheBuilder) LoaderExpireFunc(loaderExpireFunc LoaderExpireFunc) *CacheBuilder
Set a loader function with expiration. loaderExpireFunc: create a new value with this function if cached value is expired. If nil returned instead of time.Duration from loaderExpireFunc than value will never expire.
func (*CacheBuilder) LoaderFunc ¶
func (cb *CacheBuilder) LoaderFunc(loaderFunc LoaderFunc) *CacheBuilder
Set a loader function. loaderFunc: create a new value with this function if cached value is expired.
func (*CacheBuilder) PurgeVisitorFunc ¶
func (cb *CacheBuilder) PurgeVisitorFunc(purgeVisitorFunc PurgeVisitorFunc) *CacheBuilder
func (*CacheBuilder) SerializeFunc ¶
func (cb *CacheBuilder) SerializeFunc(serializeFunc SerializeFunc) *CacheBuilder
func (*CacheBuilder) Simple ¶
func (cb *CacheBuilder) Simple() *CacheBuilder
type EvictedFunc ¶
type FakeClock ¶
func NewFakeClock ¶
func NewFakeClock() FakeClock
type LFUCache ¶
type LFUCache struct {
// contains filtered or unexported fields
}
Discards the least frequently used items first.
func (*LFUCache) Get ¶
Get a value from cache pool using key if it exists. If it does not exists key and has LoaderFunc, generate a value using `LoaderFunc` method returns value.
type LRUCache ¶
type LRUCache struct {
// contains filtered or unexported fields
}
Discards the least recently used items first.
func (*LRUCache) Get ¶
Get a value from cache pool using key if it exists. If it does not exists key and has LoaderFunc, generate a value using `LoaderFunc` method returns value.
type LoaderFunc ¶
type PurgeVisitorFunc ¶
type SimpleCache ¶
type SimpleCache struct {
// contains filtered or unexported fields
}
SimpleCache has no clear priority for evict cache. It depends on key-value map order.
func (*SimpleCache) Get ¶
func (c *SimpleCache) Get(key any) (any, error)
Get a value from cache pool using key if it exists. If it does not exists key and has LoaderFunc, generate a value using `LoaderFunc` method returns value.
func (*SimpleCache) GetALL ¶
func (c *SimpleCache) GetALL(checkExpired bool) map[any]any
GetALL returns all key-value pairs in the cache.
func (*SimpleCache) Keys ¶
func (c *SimpleCache) Keys(checkExpired bool) []any
Keys returns a slice of the keys in the cache.
func (*SimpleCache) Len ¶
func (c *SimpleCache) Len(checkExpired bool) int
Len returns the number of items in the cache.
func (*SimpleCache) Remove ¶
func (c *SimpleCache) Remove(key any) bool
Remove removes the provided key from the cache.
func (*SimpleCache) SetWithExpire ¶
func (c *SimpleCache) SetWithExpire(key, value any, expiration time.Duration) error
Set a new key-value pair with an expiration time