У меня есть кластер Redis, настроенный на AWS (ElastiCache).
Он имеет конечную точку конфигурации и 6 узлов (3 шарда).
При чтении документации модуля npm, здесь, говорится, что вам необходимо включить ioredis, чтобы получить он должен работать в кластере Redis.
Я поделился конфигурацией ниже, которая работает для одного узла Redis, но не для кластера.
"use strict";
// Include modules
var express = require("express"),
cookieParser = require("cookie-parser"),
bodyParser = require("body-parser"),
session = require("express-session"),
RedisStore = require("connect-redis")(session),
middleware = require("./routes/middleware"),
app = express(),
sessionNameOfApp = createAppSpecificSession(configNameOfApp),
//This works but only for a single node. It doesn't work for a Redis Cluster
function createAppSpecificSession(config) {
return session({
store: new RedisStore({
host: config.SESSION.host,
port: config.SESSION.port,
pass: config.SESSION.pass
}),
resave: false,
saveUninitialized: false,
secret: config.SESSION.cookieSecret,
name: config.SESSION.cookieName,
genid: sessionMethods.generateSessionId
});
}
app.use(middleware.setUUIDOnReq);
app.use(middleware.setAgentOnReq);
// additional app modules
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(middleware.setSessionMethods);
// Include routes
require("./routes/app")(express, app);
module.exports = app;
У меня вопрос: как включить ioredis для поддержки кластеризации?
Для меня это огромный блокиратор, поэтому любая помощь будет принята с благодарностью.
Искал пример по всей сети и ничего не нашел!