kvcache

package
v7.0.4 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ProfileName is the function name in heap profile
	ProfileName = "github.com/lemon-mint/tidb/v7/util/kvcache.(*SimpleLRUCache).Put"
)

Variables

View Source
var (
	// GlobalLRUMemUsageTracker tracks all the memory usage of SimpleLRUCache
	GlobalLRUMemUsageTracker *memory.Tracker
)

Functions

This section is empty.

Types

type Key

type Key interface {
	Hash() []byte
}

Key is the interface that every key in LRU Cache should implement.

type SimpleLRUCache

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

SimpleLRUCache is a simple least recently used cache, not thread-safe, use it carefully.

func NewSimpleLRUCache

func NewSimpleLRUCache(capacity uint, guard float64, quota uint64) *SimpleLRUCache

NewSimpleLRUCache creates a SimpleLRUCache object, whose capacity is "capacity". NOTE: "capacity" should be a positive value.

func (*SimpleLRUCache) Delete

func (l *SimpleLRUCache) Delete(key Key)

Delete deletes the key-value pair from the LRU Cache.

func (*SimpleLRUCache) DeleteAll

func (l *SimpleLRUCache) DeleteAll()

DeleteAll deletes all elements from the LRU Cache.

func (*SimpleLRUCache) Get

func (l *SimpleLRUCache) Get(key Key) (value Value, ok bool)

Get tries to find the corresponding value according to the given key.

func (*SimpleLRUCache) Keys

func (l *SimpleLRUCache) Keys() []Key

Keys return all keys in cache.

func (*SimpleLRUCache) Put

func (l *SimpleLRUCache) Put(key Key, value Value)

Put puts the (key, value) pair into the LRU Cache.

func (*SimpleLRUCache) RemoveOldest

func (l *SimpleLRUCache) RemoveOldest() (key Key, value Value, ok bool)

RemoveOldest removes the oldest element from the cache.

func (*SimpleLRUCache) SetCapacity

func (l *SimpleLRUCache) SetCapacity(capacity uint) error

SetCapacity sets capacity of the cache.

func (*SimpleLRUCache) SetOnEvict

func (l *SimpleLRUCache) SetOnEvict(onEvict func(Key, Value))

SetOnEvict set the function called on each eviction.

func (*SimpleLRUCache) Size

func (l *SimpleLRUCache) Size() int

Size gets the current cache size.

func (*SimpleLRUCache) Values

func (l *SimpleLRUCache) Values() []Value

Values return all values in cache.

type Value

type Value interface {
}

Value is the interface that every value in LRU Cache should implement.

Jump to

Keyboard shortcuts

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