egg-ioredis

1.0.1 • Public • Published

egg-redis

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Redis client(support redis portocal) based on ioredis for egg framework

Install

$ npm i egg-redis --save

redis Plugin for egg, support egg application access to redis.

This plugin based on ioredis, if you want to know specific usage, you should refer to the document of ioredis.

Configuration

Change ${app_root}/config/plugin.js to enable redis plugin:

exports.redis = {
  enable: true,
  package: 'egg-redis',
};

Configure redis information in ${app_root}/config/config.default.js:

Usage

In controller, you can use app.redis to get the redis instance, check ioredis to see how to use.

// app/controller/home.js
 
module.exports = app => {
  return class HomeController extends app.Controller {
    * index() {
      const { ctx, app } = this;
      // set
      yield app.redis.set('foo', 'bar');
      // get
      ctx.body = yield app.redis.get('foo');
    }
  };
};

Multi Clients

If your Configure with multi clients, you can use app.redis.get(instanceName) to get the specific redis instance and use it like above.

// app/controller/home.js
 
module.exports = app => {
  return class HomeController extends app.Controller {
    * index() {
      const { ctx, app } = this;
      // set
      yield app.redis.get('instance1').set('foo', 'bar');
      // get
      ctx.body = yield app.redis..get('instance1').get('foo');
    }
  };
};

Clients Depend on Redis Cluster

Before you start to use Redis Cluster, please checkout the document first, especially confirm cluster-enabled yes in Redis Cluster configuration file.

In controller, you also can use app.redis to get the redis instance based on Redis Cluster.

 
// app/config/config.default.js
 
exports.redis = {
   client: {
     cluster: true,
     nodes: [{
       host: '127.0.0.1',
       port: '6379',
       family: 'user',
       password: 'password',
       db: 'db',
     }, {
       host: '127.0.0.1',
       port: '6380',
       family: 'user',
       password: 'password',
       db: 'db',
     }]
   },
};
 
// app/controller/home.js
 
module.exports = app => {
  return class HomeController extends app.Controller {
    * index() {
      const { ctx, app } = this;
      // set
      yield app.redis.set('foo', 'bar');
      // get
      ctx.body = yield app.redis.get('foo');
    }
  };
};

Questions & Suggestions

Please open an issue here.

License

MIT

Package Sidebar

Install

npm i egg-ioredis

Weekly Downloads

1

Version

1.0.1

License

MIT

Last publish

Collaborators

  • tujiao