Skip to content
A Redis command batcher
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.eslintrc
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
jest.config.js
package-lock.json
package.json
tsconfig.json

README.md

RedisLoader

An ioredis-like object that batches commands via dataloader. Under the hood we have dataloader utilize redis's multi transactions and pipelining to group commands called. We also support batching in streams, using bluestream to make sure promises/async functions play nice in them.

Installation

npm i --save redis-loader

or

yarn add redis-loader

Examples

// RedisLoader supports an optional logger function with stats on each batch of commands
function logger (stats) {
  //...
}
// set up like you would `ioredis`
const redis = redisLoader('redis://localhost:6379/1', { keyPrefix: 'foo', logger })

// or setup ioredis
const redis = new Redis(redisUrl, redisOptions)
const redisLoader = new RedisLoader({ redis, logger })

// three commands sent to Redis together in one multi
await Promise.all([
  redis.ping(),
  redis.dbsize(),
  redis.time()
])

// three commands sent separately to redis
await redis.ping()
await redis.dbsize()
await redis.time()
You can’t perform that action at this time.