dcrd/lru
Dave Collins cecfb5a0b4
multi: Update README.md files for go modules.
This updates the installation and updating section of the README.md
files in the various packages to call out the module they are a part of
and instruct the consumer to use the standard go tooling instead of the
old, and no longer correct, package-based 'go get -u' instructions.
2021-01-22 14:39:23 -06:00
..
cache_test.go multi: Correct typos. 2019-08-22 10:20:03 -05:00
cache.go multi: Address a bunch of lint issues. 2019-12-30 13:54:41 -06:00
doc.go lru: add kv cache. 2019-11-12 00:00:06 -06:00
example_test.go lru: add kv cache. 2019-11-12 00:00:06 -06:00
go.mod lru: Implement a new module with generic LRU cache. 2019-03-18 10:08:21 -05:00
kv_test.go lru: add kv cache. 2019-11-12 00:00:06 -06:00
kv.go lru: Fix lookup race on small caches. 2020-11-09 15:32:22 -06:00
README.md multi: Update README.md files for go modules. 2021-01-22 14:39:23 -06:00

lru

Build Status ISC License Doc

Package lru implements generic least-recently-used caches 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 meaning 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 well-tested and concurrent safe least-recently-used caches with near O(1) performance characteristics for lookups, inserts, and deletions.

Installation and Updating

This package is part of the github.com/decred/dcrd/lru module. Use the standard go tooling for working with modules to incorporate it.

Examples

  • Basic Cache Usage Demonstrates creating a new cache instance, inserting items into the cache, causing an eviction of the least-recently-used item, and removing an item.

  • Basic KV Cache Usage Demonstrates creating a new k/v 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 ISC License.