egg-zy-redis
v1.0.4
Published
Redis plugin for egg
Downloads
3
Maintainers
Readme
egg-redis
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-zy-redis',
};
Configure redis information in ${app_root}/config/config.default.js
:
Single Client
config.redis = {
client: {
port: 6379, // Redis port
host: '127.0.0.1', // Redis host
password: 'auth',
db: 0,
},
}
Multi Clients
config.redis = {
clients: {
foo: { // instanceName. See below
port: 6379, // Redis port
host: '127.0.0.1', // Redis host
password: 'auth',
db: 0,
},
bar: {
port: 6379,
host: '127.0.0.1',
password: 'auth',
db: 1,
},
}
}
See ioredis API Documentation for all available options.
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.