yoredis

A minimalistic Redis client using modern Node.js.

Usage no npm install needed!

<script type="module">
  import yoredis from 'https://cdn.skypack.dev/yoredis';
</script>

README

YoRedis

A minimalistic Redis client using modern Node.js.

Motivation

The goal is to write a minimal Redis client that:

  • Targets modern versions of Node.js: LTS and stable.
  • Uses Promises from the beginning, not just as an afterthought.
  • Allows async configuration which can accommodate modern credential stores such as Vault.

Usage

Basic usage:

const YoRedis = require('yoredis');

const redis = new YoRedis({ url: 'redis://127.0.0.1:6379' });

redis.call('ping')
  .then(function(reply) {
    console.log(reply);
  });

With dynamic, async configuration using Vaulted:

const redis = new YoRedis(function() {
  return vault.read({ id: 'redis/production' })
    .then(function(secret) {
      return {
        url: secret.url
      };
    });
});

redis.call('ping')
  .then(function(reply) {
    console.log(reply);
  });

Pipelining

redis.callMany([ [ 'ping' ], [ 'set', 'foo', 'bar' ], [ 'get', 'foo' ] ])
  .then(function(replies) {
    // replies is:
    // [
    //   'PONG',
    //   'OK',
    //   'bar'
    // ]
  })

Roadmap

  • Support streams.