Skip to content

e0ipso/keyv-lru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Aug 4, 2021
b0e3059 · Aug 4, 2021

History

31 Commits
Jul 23, 2018
Aug 30, 2019
Jun 15, 2018
Jun 15, 2018
Jun 15, 2018
Jun 15, 2018
Jun 15, 2018
Jun 15, 2018
Aug 21, 2019
Jun 15, 2018
Jun 15, 2018
Dec 12, 2020
Jun 15, 2018
Aug 21, 2019
Jun 15, 2018
Jun 15, 2018
Aug 21, 2019
Jun 15, 2018
Aug 4, 2021
Nov 19, 2020
Jun 15, 2018
Jul 23, 2018
Jul 23, 2018

Repository files navigation

Keyv - LRU Keyv logo

This project is part of the Keyv suite.

Travis Coverage

Installation

In order to use LRU as your store in Keyv you will need to:

Install

Install this module in your project:


npm install keyv-lru

Features

This module is based on the tiny-lru module. This is one of the best performing libraries for LRU storages.

Usage

Create your Keyv object by executing:

const { KeyvLru, KeyvLruManagedTtl } = require('keyv-lru');

const options = {
  max: 1000,
  notify: false,
  ttl: 0,
  expire: 0,
};
const keyvLru = new KeyvLru(options);
const keyvLruManagedTtl = new KeyvLruManagedTtl(options);

See tiny-lru to learn about the available options.

Managed TTLs

KeyvLruManagedTtl uses a managed TTL strategy instead of timers. This is useful for serverless architectures. tiny-lru expires entries based on timers, that means that the event loop is not empty when the lambda function is finished. That blocks the end of the execution.

This implementation will store the expiration time along with the cached data and it will deleter expired items upon retrieval. Alternatively there is an evictExpired() method that will evict all the expired items.

Even when not using tiny-lru‘s built-in expiration system based on timers, we still benefit a lot from the LRU store.

Contributors

Contributors
Mateu Aguiló Bosch

License

keyv-lru is MIT licensed.