Skip to content

An abstraction to use in-memory cache strategy with NodeJS + Typescript + Redis

Notifications You must be signed in to change notification settings

daniellrsouza/in-memory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

In Memory

The purpose of this package is provide an abstraction to use in-memory cache strategy with NodeJS, Typescript and Redis.

How to install

Install @loadshark/in-memory with npm

  cd my-project

  npm i @loadshark/in-memory

Features

  • startInMemory: creating an instance of In Memory (redis is used in background)
  • useInMemory: as hook it returns some methods to manipulate a new register in cache
    • create: a method that register data in the In Memory Database.
    • get: a method that fetch data in the In Memory Database.
    • remove: a method that remove data with a key as parameter.
    • generateKey: a method that generates a base-64 key when passed a text (string).

Usage/Examples

In this first example we show how the In Memory is instantiated.

const { startInMemory, useInMemory } = require('@loadshark/in-memory');

startInMemory({
  url: 'redis://127.0.0.1:6379'
})

In this example we show how you can generate a new key (that will be used to fetch data later) and create a new register in In Memory Database.

const { create, generateKey } = useInMemory()

const key = generateKey('someText')

const user = {
    firstName: 'John',
    lastName: 'Doe'
    age: 26
}

await create(key, user)

Finally we'll see here how to fetch data from an already defined key and if it exists we'll delete it

const { get, remove, generateKey } = useInMemory()

const key = generateKey('someText')

const isCached = await get(key)
  
if (isCached) {
    await remove(key)
}

FAQ

Is it possible to use some other in-memory data structure store (other than Redis)?

For now we only support Redis as in memory database

How can I check the parameters of a method or the instance?

This package was released with its type declarations.

Check the following:

const instance = startInMemory({
    url: 'redis://127.0.0.1:6379'
})

// its the original set method from redis that you can access directly
instance.set('someText', 'value')

When you type "instance." you'll see all methods from Redis instance under the sheets

About

An abstraction to use in-memory cache strategy with NodeJS + Typescript + Redis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published