'use strict'; // https://github.com/luin/ioredis const redis = require("ioredis") module.exports = async function factory (app, opts) { let client = opts.redis.pwd ? new redis.Cluster([ { host: opts.redis.host, port: opts.redis.port } ], { redisOptions: { password: opts.redis.pwd, }, }) : new redis(opts.redis.port, opts.redis.host, { password: opts.redis.pwd, }); client.on("error", function (err) { app.fs.logger.error('info', '[FS-AUTH-REDIS]', `redis connect error. ${opts.redis.host + ':' + opts.redis.port}`); // console.error("Error :", err); // process.exit(-1); }); client.on('connect', function () { console.info(`redis connect success ${opts.redis.host + ':' + opts.redis.port}`); }) // 自定义方法 async function hdelall (key) { const obj = await client.hgetall(key); await client.hdel(key, Object.keys(obj)) } app.redis = client app.redisTools = { hdelall, } }