Categorygithub.com/opencoff/golang-lru
modulepackage
0.6.0
Repository: https://github.com/opencoff/golang-lru.git
Documentation: pkg.go.dev

# README

golang-lru

GoDoc Go Report Card

This provides the lru package which implements a fixed-size thread safe LRU cache. It is based on the cache in Groupcache.

Changes from the original Hashicorp LRU Package

  • Addition of a new Probe() ethod to each cache implementation. This enables caller to construct and add an element into the cache if it is not present.
  • Renaming lru.Cache to lru.SimpleCache
  • Addition of a new interface lru.Cache to abstract the implementation of 3 concrete cache types. Callers can use this interface to be insulated from specific implementation details.

Example

Using the LRU is very simple:


import "github.com/opencoff/golang-lru"


func foo() {
    var c lru.Cache
    var err error

    c, err = lru.NewSimple(128)
    if err != nil {
        panic(err)
    }

    for i := 0; i < 256; i++ {
        l.Add(i, nil)
    }

    if l.Len() != 128 {
        panic(fmt.Sprintf("bad len: %v", l.Len()))
    }
}

# Packages

No description provided by the author

# Functions

New2Q creates a new TwoQueueCache using the default values for the parameters.
New2QParams creates a new TwoQueueCache using the provided parameter values.
NewARC creates an ARC of the given size.
New creates an LRU of the given size.
NewWithEvict constructs a fixed size cache with the given eviction callback.

# Constants

Default2QGhostEntries is the default ratio of ghost entries kept to track entries recently evicted.
Default2QRecentRatio is the ratio of the 2Q cache dedicated to recently added entries that have only been accessed once.

# Structs

ARCCache is a thread-safe fixed size Adaptive Replacement Cache (ARC).
SimpleCache is a thread-safe fixed size LRU cache.
TwoQueueCache is a thread-safe fixed size 2Q cache.

# Interfaces

Cache is an interface describing a generic LRU cache.