Documentation ¶
Index ¶
- type Clock
- type DeleteHook
- type Expiring
- type LRUExpireCache
- func (c *LRUExpireCache) Add(key interface{}, value interface{}, ttl time.Duration)
- func (c *LRUExpireCache) Get(key interface{}) (interface{}, bool)
- func (c *LRUExpireCache) GetWithExipreFlag(key interface{}) (interface{}, bool, bool)
- func (c *LRUExpireCache) Keys() []interface{}
- func (c *LRUExpireCache) Remove(key interface{})
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DeleteHook ¶
type DeleteHook func(key interface{}, value interface{})
type Expiring ¶
type Expiring struct {
// contains filtered or unexported fields
}
Expiring is a map whose entries expire after a per-entry timeout.
func NewExpiringWithCallback ¶
func NewExpiringWithCallback(hook DeleteHook) *Expiring
NewExpiringWithClock is like NewExpiring but allows passing in a custom clock for testing.
func NewExpiringWithClock ¶
NewExpiringWithClock is like NewExpiring but allows passing in a custom clock for testing.
func (*Expiring) Delete ¶
func (c *Expiring) Delete(key interface{})
Delete deletes an entry in the map.
func (*Expiring) Set ¶
Set sets a key/value/expiry entry in the map, overwriting any previous entry with the same key. The entry expires at the given expiry time, but its TTL may be lengthened or shortened by additional calls to Set(). Garbage collection of expired entries occurs during calls to Set(), however calls to Get() will not return expired entries that have not yet been garbage collected.
type LRUExpireCache ¶
type LRUExpireCache struct {
// contains filtered or unexported fields
}
LRUExpireCache is a cache that ensures the mostly recently accessed keys are returned with a ttl beyond which keys are forcibly expired.
func NewLRUExpireCache ¶
func NewLRUExpireCache(maxSize int) *LRUExpireCache
NewLRUExpireCache creates an expiring cache with the given size
func NewLRUExpireCacheWithClock ¶
func NewLRUExpireCacheWithClock(maxSize int, clock Clock) *LRUExpireCache
NewLRUExpireCacheWithClock creates an expiring cache with the given size, using the specified clock to obtain the current time.
func (*LRUExpireCache) Add ¶
func (c *LRUExpireCache) Add(key interface{}, value interface{}, ttl time.Duration)
Add adds the value to the cache at key with the specified maximum duration.
func (*LRUExpireCache) Get ¶
func (c *LRUExpireCache) Get(key interface{}) (interface{}, bool)
Get returns the value at the specified key from the cache if it exists and is not expired, or returns false.
func (*LRUExpireCache) GetWithExipreFlag ¶
func (c *LRUExpireCache) GetWithExipreFlag(key interface{}) (interface{}, bool, bool)
Get returns the value at the specified key from the cache if it exists and is not expired, or returns false.
func (*LRUExpireCache) Keys ¶
func (c *LRUExpireCache) Keys() []interface{}
Keys returns all unexpired keys in the cache.
Keep in mind that subsequent calls to Get() for any of the returned keys might return "not found".
Keys are returned ordered from least recently used to most recently used.
func (*LRUExpireCache) Remove ¶
func (c *LRUExpireCache) Remove(key interface{})
Remove removes the specified key from the cache if it exists