Documentation
¶
Overview ¶
Package cache provides caching interfaces and implementations.
Index ¶
- type Cacher
- type DualMapCache
- func (c *DualMapCache[K, V]) Evict(key K)
- func (c *DualMapCache[K, V]) Flush()
- func (c *DualMapCache[K, V]) Get(key K) (V, bool)
- func (c *DualMapCache[K, V]) Len() int
- func (c *DualMapCache[K, V]) Migrate()
- func (c *DualMapCache[K, V]) PortionFilled() float64
- func (c *DualMapCache[K, V]) Put(key K, value V)
- type Empty
- type LRU
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cacher ¶
type Cacher[K comparable, V any] interface { // Put inserts an element into the cache. Put(key K, value V) // Get returns the entry with the key, if it exists. Get(key K) (V, bool) // Evict removes the specified entry from the cache. Evict(key K) // Flush removes all entries from the cache. Flush() // Len returns the number of elements in the cache. Len() int // PortionFilled returns fraction of cache currently filled (0 --> 1). PortionFilled() float64 }
Cacher acts as a best effort key value store.
type DualMapCache ¶
type DualMapCache[K comparable, V any] struct { // contains filtered or unexported fields }
DualMapCache is a simple two-map cache placeholder with migration hooks. The implementation is intentionally minimal to preserve API compatibility.
func NewDualMapCache ¶
func NewDualMapCache[K comparable, V any](_ metric.Registry) *DualMapCache[K, V]
NewDualMapCache creates a new DualMapCache. Metrics are optional.
func (*DualMapCache[K, V]) Evict ¶
func (c *DualMapCache[K, V]) Evict(key K)
Evict removes the specified entry from the cache.
func (*DualMapCache[K, V]) Flush ¶
func (c *DualMapCache[K, V]) Flush()
Flush removes all entries from the cache.
func (*DualMapCache[K, V]) Get ¶
func (c *DualMapCache[K, V]) Get(key K) (V, bool)
Get returns the entry with the key, if it exists.
func (*DualMapCache[K, V]) Len ¶
func (c *DualMapCache[K, V]) Len() int
Len returns the number of elements in the cache.
func (*DualMapCache[K, V]) Migrate ¶
func (c *DualMapCache[K, V]) Migrate()
Migrate is a no-op placeholder for dual-map cache migration.
func (*DualMapCache[K, V]) PortionFilled ¶
func (c *DualMapCache[K, V]) PortionFilled() float64
PortionFilled returns fraction of cache currently filled.
func (*DualMapCache[K, V]) Put ¶
func (c *DualMapCache[K, V]) Put(key K, value V)
Put inserts or replaces an element in the cache.
type LRU ¶
type LRU[K comparable, V any] struct { // If set to <= 0, will be set internally to 1. Size int // contains filtered or unexported fields }
LRU is a key value store with bounded size. If the size is attempted to be exceeded, then an element is removed from the cache before the insertion is done, based on evicting the least recently used value.
func NewLRU ¶
func NewLRU[K comparable, V any](size int) *LRU[K, V]
NewLRU creates a new LRU cache with the specified size.
func (*LRU[_, _]) PortionFilled ¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package lru provides the ONE standard LRU cache implementation using container package.
|
Package lru provides the ONE standard LRU cache implementation using container package. |