abstract-cache-redis
Version:
An abstract-cache compliant client targeting Redis
61 lines (43 loc) • 1.73 kB
Markdown
is compliant with the
[ ](https://github.com/jsumners/abstract-cache) protocol. This
client implements the `await` style of the protocol.
In addition to the API mandated by the protocol, the client exposes
`keys`, `scan`, `scanStream`, `disconnect` and `quit` methods. These map to the
[ ](https://npm.im/ioredis) methods of the same names. The `disconnect`
and `quit` methods are only useful if you create the client with connection
configuration instead of an already connected Redis client.
```js
// Create a client that uses ioredis to connect to `localhost:6379`.
const client = require('abstract-cache-redis')({ioredis: {}})
client.set('foo', 'foo', 1000)
.then(() => client.has('foo'))
.then(console.log) // true
.then(() => client.quit())
.catch(console.error)
client.set('foo', 'foo', 1000)
.then(() => client.keys('fo*'))
.then(console.log) // [ 'foo' ]
.then(() => client.quit())
.catch(console.error)
```
The client factory accepts the an object with the following properties:
+ `client`: An already connected instance of `ioredis`.
+ `ioredis`: A regular `ioredis` configuration object.
Notes:
1. `client` takes precedence to `ioredis`.
1. At least one of the `client` or `ioredis` properties must be supplied.
1. The user is responsible for closing the connection.
In order to run the tests for this project a local instance of Reis must
be running on port `6379`. A `docker-compose.yml` is included to facilitate
this:
```shell
$ docker-compose -d up
$ tap test/*.test.js
```
`npm test` automates the above.
## License
[MIT License](http://jsumners.mit-license.org/)
This module provides a cache client that