Skip to content

lagden/cache-redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 8, 2024
d9ba5ae · Sep 8, 2024

History

98 Commits
Sep 8, 2024
Jun 12, 2023
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024
Dec 6, 2017
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024
Sep 8, 2024

Repository files navigation

cache-redis

NPM version Node.js CI Coverage Status Snyk badge

Making cache with Redis

Install

$ npm i @tadashi/cache-redis

API

new Cache( [opts])

parameter type required default description
opts Object no see below Options for configuring the cache.

opts

parameter type required default description
address String|String[] no 127.0.0.1:6379 The address of the Redis server.
namespace String no app A namespace for the cache keys.
redisOptions Object no - See configuration options

Cluster

To use Cluster, set addresses separated by commas or an array and set clusterOptions.

import Cache from '@tadashi/cache-redis'

const cache = new Cache({
  address: '127.0.0.1:6379, 127.0.0.1:6380, 127.0.0.1:6381',
  // or
  address: ['127.0.0.1:6379', '127.0.0.1:6380', '127.0.0.1:6381'],
  // and
  redisOptions: {
    clusterOptions: {
      retryDelayOnClusterDown: 500,
      // ...
    }
  }
})

Usage

import Cache from '@tadashi/cache-redis'

const _cache = new Cache({
  redisOptions: {
    keyPrefix: 'api'
  },
  namespace: 'example'
})

async function find(key) {
  try {
    const cache = await _cache.get(key)
    if (cache) {
      return cache
    }
    const result = await getDataFromSomeWhere(key)
    await _cache.set(key, result, 'PX', 3600)
    return result
  } catch (err) {
    throw err
  }
}


await find('foo')
// => data from getDataFromSomeWhere

await find('foo')
// => data from cache

Important

Buy me a coffee!
BTC: bc1q7famhuj5f25n6qvlm3sssnymk2qpxrfwpyq7g4

License

MIT © Thiago Lagden