1.2.0 • Published 1 year ago

@loadshark/in-memory v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

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

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago