REDIS作为具有多个前端的会话存储。有什么选择?

时间:2014-07-07 11:54:53

标签: session web-applications redis scalability

我正在开发一个Web应用程序,它包含在与同一API服务器通信的多个实例的前端。

用户将进入应用程序的随机实例(服务器),其会话存储在REDIS后端。

目前我的选择是:

1)在每台Web服务器上放置一台Redis服务器并对其进行集群,以便复制所有会话(此处可能存在一些连续性问题)。

2)设置所有Web服务器通信的专用Redis服务器。

有没有其他方法可以做到这一点我错过了? 另外,每个选项的优缺点是什么?

1 个答案:

答案 0 :(得分:1)

关于选项1.如果我理解正确,您尝试群集redis实例。不幸的是,Redis目前还不提供集群。

关于选项2.我认为它看起来像使用单个Redis实例作为后端会话存储。这种方法看起来更合理。 但关于选项2.你需要考虑

  • 可伸缩性:单个Redis实例具有容量限制
  • 可用性:Redis不提供故障转移/故障恢复机制。您需要考虑其他解决方案来解决此问题。 Sentinel通常用于故障转移方案。

如果您仅将redis实例用于会话存储,则可伸缩性不会成为问题。 (会话数据不是那么大)。唯一的考虑因素是可用性。

您考虑的另一个选择是couchbase。 Couchbase是另一个nosql,它集群了memcached。因此,它非常适合用于会话存储,它提供内置的扩展/输出功能和故障转移/故障恢复功能。

希望它对你有用。