cache

package module
v0.0.0-...-9602e52 Latest Latest
Warning

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

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

README

LRUCache

A fork of Groupcache LRU.

change some codes to meet my needs

THREAD SAFE

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	// MaxEntries is the maximum number of cache entries before
	// an item is evicted. Zero means no limit.
	MaxEntries int

	// OnEvicted optionally specifies a callback function to be
	// executed when an entry is purged from the cache.
	OnEvicted func(key Key, value interface{})
	// contains filtered or unexported fields
}

Cache is an LRU cache. It is not safe for concurrent access.

func New

func New(maxEntries int) *Cache

New creates a new Cache. If maxEntries is zero, the cache has no limit and it's assumed that eviction is done by the caller.

func (*Cache) Clear

func (c *Cache) Clear()

Clear purges all stored items from the cache.

func (*Cache) Get

func (c *Cache) Get(key Key) (value interface{}, ok bool)

Get looks up a key's value from the cache.

func (*Cache) GetAndRemoveExpire

func (c *Cache) GetAndRemoveExpire(key Key) (value interface{}, ok bool)

GetAndRemoveExpire loos up a key's value ,returns if it exists and call a defer func to check it whether it's expired or not. If it was expired,remove it

func (*Cache) Has

func (c *Cache) Has(key Key) (hit bool)

func (*Cache) Len

func (c *Cache) Len() int

Len returns the number of items in the cache.

func (*Cache) Remove

func (c *Cache) Remove(key Key)

Remove removes the provided key from the cache.

func (*Cache) RemoveExpire

func (c *Cache) RemoveExpire()

func (*Cache) RemoveOldest

func (c *Cache) RemoveOldest()

RemoveOldest removes the oldest item from the cache.

func (*Cache) Reset

func (c *Cache) Reset()

Reset all cache value and clear all key.

func (*Cache) Set

func (c *Cache) Set(key Key, value interface{})

Add adds a value to the cache.

func (*Cache) SetWithExpire

func (c *Cache) SetWithExpire(key Key, value interface{}, expiretime time.Duration)

type Key

type Key interface{}

A Key may be any value that is comparable. See http://golang.org/ref/spec#Comparison_operators

Jump to

Keyboard shortcuts

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