This bumps the go directive for all of the modules provided by the repository to 1.17 which will allow the new module graph pruning and lazy loading capabilities introduced in Go 1.17 to be used once the updated modules are released. This means that, as described by the documentation, the go.mod files for each module now include a separate require block that includes all of the indirect dependencies |
||
|---|---|---|
| .. | ||
| cache_test.go | ||
| cache.go | ||
| doc.go | ||
| example_test.go | ||
| go.mod | ||
| kv_test.go | ||
| kv.go | ||
| README.md | ||
lru
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.