我正在尝试通过使用 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/