我尝试在node express服务器上使用redis来存储用户会话,方法是使用connect-redis(on Github)库。我发现这个设置块效果很好:
var app = express();
app.use(session({
secret: 'hahahahahahahahahaha',
cookie: { maxAge: 36000000 },
store: new redisStore(),
}))
注意我没有将任何参数传递给new redisStore()
并且它现在也有效(在其文档中传递了client
),猜测它是否使用localhost和默认端口默认情况下。
但令我担心的是,如果我将服务器放在未来的AWS EC2上,这是一个共享服务器,如果我没有指定客户端,这将是一个问题吗?比方说,redis会与同样在EC2上托管的其他服务器冲突吗?
答案 0 :(得分:1)
你 在这里使用redis客户端。您刚刚放弃了客户端的配置。这将是未来的一个问题,因为(可能)您将在集群中部署在AWS上。 redis客户端需要跨实例共用。
如果您没有定义客户端的端口号和其他详细信息,那么您基本上是要撤消进行状态管理的目的。您的redis客户端将仅限于您自己的实例。
浏览http://redis.io/topics/partitioning了解详情。
我们的想法是让一个(或一个集群)redis实例独立于您的AWS实例运行,以便在所有实例之间共享该状态。 那是您需要完全控制redis客户端的原因