Skip to content

A minimalistic Redis client using modern Node.js.

License

Notifications You must be signed in to change notification settings

djanowski/yoredis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A minimalistic Redis client using modern Node.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published