const _ = require('lodash'); const redis = require('redis'); const bluebird = require('bluebird'); const config = require('../config/common'); let client; const timeout = 200; // redis 操作超时时间 try { client = redis.createClient(config.redis.connect); bluebird.promisifyAll(redis.RedisClient.prototype); bluebird.promisifyAll(redis.Multi.prototype); client.all = args => { if (!client.ready) { if (Array.isArray(args)) { return Promise.resolve(_.fill(args, false)); } else { return Promise.resolve(false); } } return client.multi.call(client, args).execAsync().timeout(timeout).then(res => { return res; }).catch(() => { return false; }); }; client.on('error', function() { global.yoho.redis = ''; }); client.on('connect', function() { global.yoho.redis = client; }); } catch (e) { global.yoho.redis = ''; } module.exports = client;