我在AWS(ElastiCache)上配置了Redis集群。
它有一个配置endpoint和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来支持集群?
这对我来说是一个巨大的障碍,所以任何帮助都将受到高度赞赏。
全网找例子,一无所获!
这就是最终对我起作用的原因:
app.js文件:
"use strict";
// Include modules
var express = require("express"),
path = require("path"),
cookieParser = require("cookie-parser"),
bodyParser = require("body-parser"),
session = require("express-session"),
RedisStore = require("connect-redis")(session),
Redis = require('ioredis'),
config = require("./config"),
errorMessage = require("./errors/errorMessage"),
sessionMethods = require("./utils/sessionMethods"),
helmet = require("helmet"),
middleware = require("./routes/middleware"),
app = express(),
session = createAppSpecificSession(config),
function createAppSpecificSession(config) {
var redis = null;
redis = new Redis({
host: config.SESSION.host,
port: config.SESSION.port,
password: config.SESSION.password
});
return session({
store: new RedisStore({
client: redis
}),
resave: false,
saveUninitialized: false,
secret: config.SESSION.cookieSecret,
name: config.SESSION.cookieName,
genid: sessionMethods.generateSessionId
});
}
app.use(helmet());
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("/", session);
// Include routes
require("./routes/app")(express, app);
module.exports = app;
和配置文件:
配置。js公司
module.exports = {
SESSION: {
hosts: [{
host: "endpoint1.0001.apse1.cache.amazonaws.com",
port: 6379,
password: "",
}, {
host: "endpoint2.0002.apse1.cache.amazonaws.com",
port: 6379,
password: "",
}, {
host: "endpoint3.0003.apse1.cache.amazonaws.com",
port: 6379,
password: "",
}],
cookieName: "connect.sid",
cookieSecret: ["blablabla", "blablabla"]
}
};
我们希望我们的Redis更具可扩展性,并且能够添加更多的读取实例。 我正在尝试使用此新的读卡器endpoint:https://aws.amazon.com/about-aws/whats-new/2019/06/amazon-elasticache-launches-reader-endpoint-for-redis 但是,我没有看到使用这种方法的任何简单或自动的方法,我可以设置哪个endpoi
问题内容: 如何在AWS ElasticBeanstalk上安装和配置Redis?有人知道如何编写.ebextension脚本来实现这一目标吗? 问题答案: AWS Elastic Beanstalk确实通过.ebextensions文件夹提供了资源配置。本质上,除了应用程序之外,您还需要告诉Elastic Beanstalk您还希望提供什么。用于置备到默认vpc。你需要 创建一个.ebexten
有一个问题,通过遵循回购 https://github.com/razorinc/redis-openshift-example 当我启动redis server时,它显示“[12010]25 Mar 20:14:53#打开端口6379:bind:权限被拒绝” 我试图将端口0更改为端口3128,但仍然得到相同的错误。。。。不知道为什么 --更新当我尝试升级到redis 2.6并使用--port参数
问题内容: 在Webfaction共享主机帐户上设置Redis数据库需要执行哪些步骤? 问题答案: 由于Webfaction服务器的特殊环境限制,安装说明并不像它们那样简单。不过,最后您将拥有一个功能齐全的Redis服务器,即使重新启动后它也可以保持运行状态。大约半年前,我通过以下步骤亲自安装了Redis,此后一直运行良好。只是警告一下,半年不是很长的时间,尤其是因为服务器没有被大量使用。 这些说
本文向大家介绍如何在Ubuntu Linux上配置和安装Redis,包括了如何在Ubuntu Linux上配置和安装Redis的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将学习如何配置Redis,Redis是一种内存中键值存储,它以其灵活性,性能和广泛的语言支持而广受欢迎。我们将在Ubuntu Linux服务器上进行配置。要进行此演示,我们需要一个非root用户,并将为该用户设置Sud
问题内容: 注意对于那些使用Redis挣扎的人,必须启动Redis服务器。 在Windows上,有一个redis发行版,请查看以下链接:https : //github.com/dmajkic/redis/downloads,然后通过启动“ redis-server.exe”来启动服务器。 我正在遵循有关node.js的教程。本教程使用Express和Redis。我安装了redis和connect