Version: v1.0.48 Latest Latest

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

Go to latest
Published: Jun 12, 2018 License: Apache-2.0 Imports: 2 Imported by: 0




This section is empty.


This section is empty.


This section is empty.


type Cache

type Cache interface {
	// Get retrieves items from the cache by key.
	// If an item for a particular key is not found, its position in the result will be nil.
	Get(keys ...string) []Item

	// Put adds an item to the cache.
	Put(key string, item Item)

	// Remove clears items with the given keys from the cache
	Remove(keys ...string)

	// Size returns the size of all items currently in the cache.
	Size() uint64

Cache is a bounded-size in-memory cache of sized items with a configurable eviction policy

func New

func New(capacity uint64, options ...CacheOption) Cache

New returns a cache with the requested options configured. The cache consumes memory bounded by a fixed capacity, plus tracking overhead linear in the number of items.

type CacheOption

type CacheOption func(*cache)

CacheOption configures a cache.

func EvictionPolicy

func EvictionPolicy(policy Policy) CacheOption

EvictionPolicy sets the eviction policy to be used to make room for new items. If not provided, default is LeastRecentlyUsed.

type Item

type Item interface {
	// Size returns the item's size, in bytes
	Size() uint64

Item is an item in a cache

type Policy

type Policy uint8

Policy is a cache eviction policy for use with the EvictionPolicy CacheOption.

const (
	// LeastRecentlyAdded indicates a least-recently-added eviction policy.
	LeastRecentlyAdded Policy = iota
	// LeastRecentlyUsed indicates a least-recently-used eviction policy.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL