如何在数据库断开连接时处理Redis会话

How to handle Redis session when db disconnects

本文关键字:处理 Redis 会话 连接 断开 数据库      更新时间:2024-03-01

我在Express App:中丢失用于会话的Redis连接时遇到问题

var RedisStore = require('connect-redis')(express);
sessionStore = new RedisStore(config.db.redis.connection);
sessionStore.client.on('error', function(err){
  console.log("Redis error " + err);
});
app.use(express.session({
  secret: config.secret,
  maxAge: new Date(Date.now() + 3600000),
  store: sessionStore
}));

当它关闭时,由于会话不再可用,网站也会关闭。我正在考虑回退到memoryStore或辅助数据库,但我想使用该回退,直到我可以再次重新连接为止(我不太担心会话丢失,只是不希望网站繁荣)。

我该怎么做?一个现有的插件将是伟大的,但到目前为止还没有找到任何东西。

您是否尝试过使用复制主从选项?如果master向下切换到slave,并且当master向上时,指向master。

您的应用程序应该检查主连接,如果它关闭了,它应该从从属服务器获取数据并恢复服务。

您可以让slave在同一台服务器或其他任何地方运行。

Redis被誉为最可靠的数据存储之一。与其试图设计一个失败的解决方案,我建议修复您的Redis。或者,使用像Redistogo这样的托管服务,每月7美元,应该几乎没有停机时间。