Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrCacheFull is returned if Put fails due to cache being filled with pinned elements ErrCacheFull = errors.New("Cache capacity is fully occupied with pinned elements") )
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface {
// Get retrieves an element based on a key, returning nil if the element
// does not exist
Get(key string) interface{}
// Put adds an element to the cache, returning the previous element
Put(key string, value interface{}) interface{}
// PutIfNotExist puts a value associated with a given key if it does not exist
PutIfNotExist(key string, value interface{}) (interface{}, error)
// Delete deletes an element in the cache
Delete(key string)
// Release decrements the ref count of a pinned element. If the ref count
// drops to 0, the element can be evicted from the cache.
Release(key string)
// Size returns the number of entries currently stored in the Cache
Size() int
}
A Cache is a generalized interface to a cache. See cache.LRU for a specific implementation (bounded cache with LRU eviction)
func NewLRU ¶
NewLRU creates a new LRU cache of the given size, setting initial capacity to the max size
func NewLRUWithInitialCapacity ¶
NewLRUWithInitialCapacity creates a new LRU cache with an initial capacity and a max size
type Options ¶
type Options struct {
// TTL controls the time-to-live for a given cache entry. Cache entries that
// are older than the TTL will not be returned
TTL time.Duration
// InitialCapacity controls the initial capacity of the cache
InitialCapacity int
// Pin prevents in-use objects from getting evicted
Pin bool
// RemovedFunc is an optional function called when an element
// is scheduled for deletion
RemovedFunc RemovedFunc
}
Options control the behavior of the cache
type RemovedFunc ¶
type RemovedFunc func(interface{})
RemovedFunc is a type for notifying applications when an item is scheduled for removal from the Cache. If f is a function with the appropriate signature and i is the interface{} scheduled for deletion, Cache calls go f(i)
Click to show internal directories.
Click to hide internal directories.