cache

package
v0.0.0-...-d5c698f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2020 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache []*cacheShard

func NewCache

func NewCache(maxSize int) Cache

func (*Cache) Add

func (c *Cache) Add(index uint64, obj interface{}) bool

Returns true if object already existed, false otherwise.

func (*Cache) Get

func (c *Cache) Get(index uint64) (obj interface{}, found bool)

type Clock

type Clock interface {
	Now() time.Time
}

Clock defines an interface for obtaining the current time

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) Keys

func (c *LRUExpireCache) Keys() []interface{}

Keys returns all the keys in the cache, even if they are expired. Subsequent calls to get may return not found. It returns all keys from oldest to newest.

func (*LRUExpireCache) Remove

func (c *LRUExpireCache) Remove(key interface{})

Remove removes the specified key from the cache if it exists

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL