Giter Site home page Giter Site logo

lru-cache's Introduction

LRU-CACHE


Data Structure Used :- Doubly-Linked List and Hash Map.
Cache:- It is the fastest memory which is smaller in size and expensive . It has a fixed size.


lru

It is real life data structure application. It is used for fast interaction between server and client:-
Implementing the LRU cache data structure , will allow the following operation in O(1).

  • Insert (key , value)
  • getvalue (key)
  • getmostrecentlyused ()

Max Size Property:-


It represents the max key-value pairs that can be stored inside the cache at a time.
If key-value pair has to be inserted into the cache when cache is full then the least recently used key-value pair should be deleted, then only new pair will be inserted.
If key-value pair to be inserted already exist in cache, then simply update the value of key with new value.


Implementation:- LRU cache is implemented using doubly linked list storing key-value pair and unordered-map storing key along with its address.
Insert operation has 3 cases:-

  1. If cache hits, then check and update the value of key.
  2. If cache miss , then insert the key-value pair in cache at the top if cache is not full.
  3. If cache miss and cache is full, insert key-value pair at the top and remove key-value which is LRU.

lru-cache's People

Contributors

annanya-mathur avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.