Skip to content

sivsivsree/LRUCacheJs

Repository files navigation

lrucache-nodejs

N|lrucache-nodejs

A least recently used (LRU) cache is a cache implementation that discards the least recently used item when the cache becomes full. This requires keeping track of what was used when, and becomes the crux of maintaining an O(1) time complexity.

When an item is read from the cache (or added), it is marked as the most recently used item, and all other items get "shifted" over one. If the queue is full, the last item gets removed (shifted off). The key to this is using a linked list to rearrange the elements, and a map to store everything.

Algorithm Analysis:

  • Time complexity: O(1)
  • Space complexity: O(n)

Installation

lrucache-nodejs is plain javascript runs on browser and nodejs

via npm

$ npm install lrucache-nodejs --save

Methods

Import the library:

const LRUCache = require('lrucache-nodejs').Cache  

Implementation and Functions:

  const cache = LRUCache([cacheSize = 10]);

 // return an item from the cache
  cache.get(key)

  // add an item to the cache. overwrite if already exists
  cache.set(key, value) 

  // remove an item from the cache
  cache.remove(key) 

  // reset the cache to an empty and fresh state
  cache.clear(limit = 10) 

  // Traverse each cached item and call a function
  // callback is passed [node element, element number, cache instance] 
  cache.forEach(callback) 

  // return a JSON represenation of the cache
  cache.toJSON() 

Test:

$ npm test

(optional) Import the Node:

const LRUCache = require('lrucache-nodejs').Node  

LRU Cache TL;DR

See LRU Cache wiki

License 😎

ISC

N|lrucache-nodejs

About

Implementing LRUCache using Javascript

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published