https://github.com/pasupulaphani/node-cache-redis
Redis cache ready to scale with node-pool, semaphore support
https://github.com/pasupulaphani/node-cache-redis
cache connection-pooling generic-pool node-pool redis redis-cache scalable scale semaphore serialization store
Last synced: 11 months ago
JSON representation
Redis cache ready to scale with node-pool, semaphore support
- Host: GitHub
- URL: https://github.com/pasupulaphani/node-cache-redis
- Owner: pasupulaphani
- License: other
- Created: 2016-11-08T13:29:02.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T18:17:35.000Z (over 3 years ago)
- Last Synced: 2025-06-23T04:06:36.802Z (11 months ago)
- Topics: cache, connection-pooling, generic-pool, node-pool, redis, redis-cache, scalable, scale, semaphore, serialization, store
- Language: TypeScript
- Homepage: https://pasupulaphani.github.io/node-cache-redis/modules/_rediscache_.html
- Size: 4.2 MB
- Stars: 13
- Watchers: 3
- Forks: 12
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://badge.fury.io/js/node-cache-redis)
[](https://travis-ci.org/pasupulaphani/node-cache-redis)
[](https://coveralls.io/github/pasupulaphani/node-cache-redis?branch=master)
[](http://patreon.com/phaninder 'Donate to this project using Patreon')
# node-cache-redis [](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/index.html#init)
#### `options` object properties
Name
Type
Description
name
string
Name your store
redisOptions
object
opts from node_redis#options-object-properties
poolOptions
object
opts from node-pool#createpool
logger
object
Inject your custom logger
ttlInSeconds
number
Default time to live for stored values
### 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?
[](http://patreon.com/phaninder 'Donate to this project using Patreon')
[](https://flattr.com/profile/pasupulaphani 'Donate to this project using Flattr')
### 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.
---