lru

package
v0.0.0-...-991d2e1 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2020 License: MIT Imports: 2 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 interface {
	// Purge 用于完全清理缓存
	Purge()

	// Add 增加一个新值到缓存中,当有旧数据被清理时返回true
	Add(key, value interface{}) bool

	// Get 从缓存中查找键值
	Get(Key interface{}) (interface{}, bool)

	// Contains 检查键是否在缓存中,但不更新其最近度
	Contains(key interface{}) bool

	// Peek 返回键值(如果没有找到则未定义),而不更新键的“最近使用”属性
	Peek(key interface{}) (interface{}, bool)

	// Remove 从缓存中删除提供的键,如果包含该键则返回成功
	Remove(key interface{}) bool

	// RemoveOldest 从缓存中删除最旧的实例
	RemoveOldest() (interface{}, interface{}, bool)

	// GetOldest 获取最旧的实例
	GetOldest() (interface{}, interface{}, bool)

	// Keys 返回缓存键的slice, 从最旧的到最新的
	Keys() []interface{}

	// Len 返回缓存中元素的数量
	Len() int

	// Resize 调整缓存大小
	Resize(size int) (evicted int)
}

Cache LRU 缓存接口.

type EvictCallback

type EvictCallback func(key interface{}, val interface{})

EvictCallback 当缓存实例被清理时的回调方法

type LRU

type LRU struct {
	// contains filtered or unexported fields
}

LRU 实现了一个固定大小的非线程安全的LRU缓存

func NewLRU

func NewLRU(size int, onEvict EvictCallback) (*LRU, error)

NewLRU 实例化一个给定大小的LRU

func (*LRU) Add

func (l *LRU) Add(key, value interface{}) bool

Add 增加一个新值到缓存中,当有旧数据被清理时返回true

func (*LRU) Contains

func (l *LRU) Contains(key interface{}) bool

Contains 检查键是否在缓存中,但不更新其最近度

func (*LRU) Get

func (l *LRU) Get(key interface{}) (interface{}, bool)

Get 从缓存中查找键值

func (*LRU) GetOldest

func (l *LRU) GetOldest() (interface{}, interface{}, bool)

GetOldest 获取最旧的实例

func (*LRU) Keys

func (l *LRU) Keys() []interface{}

Keys 返回缓存键的slice, 从最旧的到最新的

func (*LRU) Len

func (l *LRU) Len() int

Len 返回缓存中元素的数量

func (*LRU) Peek

func (l *LRU) Peek(key interface{}) (interface{}, bool)

Peek 返回键值(如果没有找到则未定义),而不更新键的“最近使用”属性

func (*LRU) Purge

func (l *LRU) Purge()

Purge 用于完全清理缓存

func (*LRU) Remove

func (l *LRU) Remove(key interface{}) bool

Remove 从缓存中删除提供的键,如果包含该键则返回成功

func (*LRU) RemoveOldest

func (l *LRU) RemoveOldest() (interface{}, interface{}, bool)

RemoveOldest 从缓存中删除最旧的实例

func (*LRU) Resize

func (l *LRU) Resize(size int) (evicted int)

Resize 调整缓存大小

Jump to

Keyboard shortcuts

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