node.js - 我需要为 connect-redis 指定一个客户端吗?

标签 node.js express redis

我正在尝试通过使用 connect-redis( on Github ) 库在 node express 服务器上使用 redis 来存储用户 session 。我发现这个设置 block 效果很好:

var app = express();

app.use(session({
  secret: 'hahahahahahahahahaha',
  cookie: { maxAge: 36000000 },
  store: new redisStore(),
}))

注意我没有将任何参数传递给 new redisStore() 并且它现在也可以工作(在其文档中传递了一个 client),我猜它正在使用 localhost和默认端口。

但是我很担心,如果我将来把我的服务器放在 AWS EC2 上,这是一个共享服务器,如果我不指定客户端,那会不会有问题?比如,redis 会与同样托管在该 EC2 上的其他服务器发生冲突吗?

最佳答案

正在这里使用redis 客户端。不过,您只是放弃了客户端的配置。这将是 future 的一个问题,因为(大概)您将在集群中的 AWS 上进行部署。 Redis 客户端需要跨实例通用。

如果您不定义客户端的端口号和其他详细信息,基本上就是在破坏进行状态管理的目的。您的 Redis 客户端将仅限于您自己的实例。

通过http://redis.io/topics/partitioning了解更多信息。

我们的想法是让一个(或一个集群)独立于您的 AWS 实例运行的 redis 实例,以便在您的所有实例之间共享该状态。 就是为什么您需要完全控制您的 redis 客户端

关于node.js - 我需要为 connect-redis 指定一个客户端吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40168591/

相关文章:

javascript - 如何设置一个非常快的 node.js UDP 服务器

javascript - 无法在 Node 中导入openai

javascript - 如何避免用作快速路由回调的函数中的 'this' 问题

python - Django 如何在 Windows 10 中使用 redis?

node.js - Google 应用程序引擎的灵活性始终将流量路由到同一实例?

javascript - 我应该如何在 JS 类中声明属性?

javascript - 我收到错误 "indexRouter is not defined"

angularjs - 带有 jsonp 负载的 Express.js 响应状态代码

redis - 如何使用 Redis 5.x 禁用持久性

windows - 2019 年 Redis 在 Windows 上的状态?