# node-cache-redis

> Simplistic node redis cache ready can scale with generic-pool support

Latest version **6.4.2** (published 2021-04-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install node-cache-redis
pnpm add node-cache-redis
yarn add node-cache-redis
bun add node-cache-redis
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 6.4.2 |
| Published | 2021-04-27 |
| First published | 2017-02-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=4 |
| Dependencies | 5 |
| Unpacked size | 119.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 13 |
| Author | pasupulaphani@gmail.com |
| Maintainers | pasupulaphani |
| Keywords | redis, cache, store, connection, pool, node-pool, generic-pool, connection pooling, scalable, semaphore, Serialization |

## Links

- npm: https://www.npmjs.com/package/node-cache-redis
- Repository: https://github.com/pasupulaphani/node-cache-redis
- Homepage: https://github.com/pasupulaphani/node-cache-redis#readme
- Issues: https://github.com/pasupulaphani/node-cache-redis/issues
- npm.io page: https://npm.io/package/node-cache-redis

## Dependencies (5)

- [debug](https://npm.io/package/debug.md) ^4.3.1
- [redis](https://npm.io/package/redis.md) ^3.1.2
- [is-json](https://npm.io/package/is-json.md) ^2.0.1
- [generic-pool](https://npm.io/package/generic-pool.md) ^3.7.8
- [retry-as-promised](https://npm.io/package/retry-as-promised.md) ^3.2.0

## Alternatives

- [memory-cache](https://npm.io/package/memory-cache.md) — 795.0K weekly downloads
- [@httptoolkit/proxy-agent](https://npm.io/package/@httptoolkit/proxy-agent.md) — 11.2K weekly downloads
- [express-cache-controller](https://npm.io/package/express-cache-controller.md) — 5.3K weekly downloads
- [http-cache-middleware](https://npm.io/package/http-cache-middleware.md) — 4.5K weekly downloads
- [cache2](https://npm.io/package/cache2.md) — 1.5K weekly downloads

## Recent versions

- 6.4.2 (latest) — 2021-04-27
- 6.4.1 — 2021-04-27
- 6.4.0 — 2021-04-27
- 6.3.1 — 2021-03-14
- 6.3.0 — 2021-02-06
- 6.2.0 — 2021-02-06
- 6.1.0 — 2020-06-02
- 6.0.0 — 2020-05-25
- 5.1.0 — 2020-05-23
- 5.0.0 — 2020-05-23
- 4.0.0 — 2020-05-17
- 3.1.0 — 2020-05-17
- 3.0.0 — 2020-05-17
- 2.14.0 — 2019-08-15
- 2.9.0 — 2019-06-10
- … 14 more at https://npm.io/package/node-cache-redis/versions

## README

[![npm version](https://badge.fury.io/js/node-cache-redis.svg)](https://badge.fury.io/js/node-cache-redis)
[![Build Status](https://travis-ci.org/pasupulaphani/node-cache-redis.svg?branch=master)](https://travis-ci.org/pasupulaphani/node-cache-redis)
[![Coverage Status](https://coveralls.io/repos/github/pasupulaphani/node-cache-redis/badge.svg?branch=master)](https://coveralls.io/github/pasupulaphani/node-cache-redis?branch=master)
[![Patreon donate button](https://img.shields.io/badge/patreon-donate-yellow.svg)](http://patreon.com/phaninder 'Donate to this project using Patreon')

# node-cache-redis [![See on Github](https://github.com/themes/tactile/images/octocat-icon.png)](https://github.com/pasupulaphani/node-cache-redis)

Simplistic node redis cache ready can scale with generic-pool support

> Cache Early; Cache Often

### Documentation

- [TSDOC pages](https://pasupulaphani.github.io/node-cache-redis/index.html)

## Prerequisites

- `node >= 8` This module requires nodejs v8 or later
- `redis >= 4` This module requires redis v4 or above as it has dependencies on `UNLINK` and `redis.replicate_commands()` for pattern deletion.

## Featuring

- Works out of the box
- Easy to scale with low friction during locking and purging
- Designed for multithread environment
- Logging can be customized
- Flexible Expiration: Through configuration, you can set a default expiration mode and time for each layer.
- Statistics / Counters: Gather statistical information.
- Modular Design

## Migration

[4.0.0](https://github.com/pasupulaphani/node-cache-redis/releases/tag/v4.0.0) contains braking change. See
[CHANGELOG.md](https://github.com/pasupulaphani/node-cache-redis/blob/master/CHANGELOG.md)

### Getting started

```
    npm install node-cache-redis
```

#### Usage

```
    const { init, set, get } = require("node-cache-redis");
    init();

    // set
    await set("key", { "hello": "world" })
    const value = await get("key")
```

#### API

- init([options]) [TSDOC init](https://pasupulaphani.github.io/node-cache-redis/modules/_rediscache_.html#init)

#### `options` object properties

<table class="params">
  <thead>
    <tr>
      <th>Name</th>
      <th>Type</th>
      <th class="last">Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="name"><code>name</code></td>
      <td class="type">
        <span class="param-type">string</span>
      </td>
      <td class="description last">
        <p>Name your store</p>
      </td>
    </tr>
    <tr>
      <td class="name"><code>redisOptions</code></td>
      <td class="type">
        <span class="param-type">object</span>
      </td>
      <td class="description last">
        <p>opts from <a href="https://github.com/NodeRedis/node_redis#options-object-properties">node_redis#options-object-properties</a></p>
      </td>
    </tr>
    <tr>
      <td class="name"><code>poolOptions</code></td>
      <td class="type">
        <span class="param-type">object</span>
      </td>
      <td class="description last">
        <p>opts from <a href="https://github.com/coopernurse/node-pool#createpool">node-pool#createpool</a></p>
      </td>
    </tr>
    <tr>
      <td class="name"><code>logger</code></td>
      <td class="type">
        <span class="param-type">object</span>
      </td>
      <td class="description last">
        <p>Inject your custom logger</p>
      </td>
    </tr>
    <tr>
      <td class="name"><code>ttlInSeconds</code></td>
      <td class="type">
        <span class="param-type">number</span>
      </td>
      <td class="description last">
        <p>Default time to live for stored values</p>
      </td>
    </tr>
  </tbody>
</table>

### Run tests

##### Using docker

```
bash test.sh
```

##### Run manually

```
docker run -it -p 6379:6379 redis
npm t
```

##### Todo:

- Serialization: Used to serialize values in distributed scenarios and configuration.
- Synchronized locking with a semaphore

## Contribute

[Discover how you can contribute by heading on over to the `CONTRIBUTING.md` file.](https://github.com/pasupulaphani/node-cache-redis/blob/master/CONTRIBUTING.md)

## Backers

### Maintainers

These amazing people are maintaining this project:

- [Phaninder](https://github.com/pasupulaphani) — [view contributions](https://github.com/pasupulaphani/node-cache-redis/commits?author=pasupulaphani)

### Sponsors

No sponsors yet! Will you be the first?

[![Patreon donate button](https://img.shields.io/badge/patreon-donate-yellow.svg)](http://patreon.com/phaninder 'Donate to this project using Patreon')
[![Flattr donate button](https://img.shields.io/badge/flattr-donate-yellow.svg)](https://flattr.com/profile/pasupulaphani 'Donate to this project using Flattr')

<!-- [![PayPal donate button](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://phaninder.com/paypal "Donate to this project using Paypal") -->
<!-- [![Bitcoin donate button](https://img.shields.io/badge/bitcoin-donate-yellow.svg)](https://phaninder.com/bitcoin "Donate once-off to this project using Bitcoin") -->
<!-- [![Wishlist browse button](https://img.shields.io/badge/wishlist-donate-yellow.svg)](https://phaninder.com/wishlist "Buy an item on our wishlist for us") -->
<!-- <a href='https://pledgie.com/campaigns/33095'><img alt='Click here to lend your support to: simple-node-redis-cache and make a donation at pledgie.com !' src='https://pledgie.com/campaigns/33095.png?skin_name=chrome' border='0' ></a> -->

### Contributors

Amazing people who have contributed code to this project:

- Ron Yang
- [Oliver Brooks](https://github.com/oliverbrooks)

Feel free to make changes. Please see the [Contributors' Guide](https://github.com/pasupulaphani/node-cache-redis/blob/master/CONTRIBUTING.md) for more information on contributing to the documentation.

---

---
_Source: https://npm.io/package/node-cache-redis · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
