41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
|
lru
|
||
|
===
|
||
|
|
||
|
[![Build Status](http://img.shields.io/travis/decred/dcrd.svg)](https://travis-ci.org/decred/dcrd)
|
||
|
[![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org)
|
||
|
[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/decred/dcrd/lru)
|
||
|
|
||
|
Package lru implements a generic least-recently-used cache with near O(1) perf.
|
||
|
|
||
|
## LRU Cache
|
||
|
|
||
|
A least-recently-used (LRU) cache is a cache that holds a limited number of
|
||
|
items with an eviction policy such that when the capacity of the cache is
|
||
|
exceeded, the least-recently-used item is automatically removed when inserting a
|
||
|
new item. The meaining of used in this implementation is either accessing the
|
||
|
item via a lookup or adding the item into the cache, including when the item
|
||
|
already exists.
|
||
|
|
||
|
## External Use
|
||
|
|
||
|
This package has intentionally been designed so it can be used as a standalone
|
||
|
package for any projects needing to make use of a well-test and conccurrent safe
|
||
|
least-recently-used cache with near O(1) performance characteristics for
|
||
|
lookups, inserts, and deletions.
|
||
|
|
||
|
## Installation and Updating
|
||
|
|
||
|
```bash
|
||
|
$ go get -u github.com/decred/dcrd/lru
|
||
|
```
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
* [Basic Usage](http://godoc.org/github.com/decred/dcrd/lru#example-package--BasicUsage)
|
||
|
Demonstrates creating a new cache instance, inserting items into the cache,
|
||
|
causing an eviction of the least-recently-used item, and removing an item.
|
||
|
|
||
|
## License
|
||
|
|
||
|
Package lru is licensed under the [copyfree](http://copyfree.org) ISC License.
|