Redis Sentinel,独立或集群,哪个最适合会话?

Redis Sentinel, Standalone or Cluster, which is best for session?

哪种设置更适合使用 Redis 的会话?

由于会话数据会产生并强制所有用户在关闭时进行会话,单独使用是否是一个不错的选择?因为这允许用最少的资源快速恢复。

或者拥有集群会提供更多优势? 大公司如何使用带会话的 Redis?欢迎提出任何建议。

集群

您不想将其用于会话。不需要它,因为会话不需要高吞吐量。集群也不是高度可用的,并且将密钥分布在多个服务器上会产生更多的故障点。这对于缓存来说是可以接受的,但是对于会话来说,这将需要重新登录。这可以在集群中使用从属来缓解,但具有如下所述的相同缺点。此外,与使用 Redis Sentinel 相比,您必须管理更多的服务器。

Master/Slave(使用哨兵)

Redis master/slave 具有master-only write,read-only slaves,具有最终一致性和异步复制。 对于像会话这样不是很密集且对用户体验至关重要的东西,我不会从从机读取,但是,因为新会话可能在从机上不可用,这可能会导致不正确的会话出现一些小的用户体验问题。 另一方面,故障转移对会话有益。如果主服务器发生故障,任何复制的会话仍将继续存在。

独立

对于不属于集群(单服务器*)的小型站点,或者登录信息对用户体验或操作不重要的站点,这是一个不错的选择,例如只需要 post 在可公开访问的博客上发表评论。一个简单的 "try again later" 消息就可以了。

这种方法的主要优点是它的设置和维护非常简单,因为它是单一安装。 Redis 非常稳定,因此您不会经常遇到 Redis 本身的问题。由于维护、更新或服务器停机而不是 Redis 本身的故障,更有可能发生故障。

*如果您在业务生产中使用单个网络服务器,Redis 基础架构应该是您最后关心的问题。 使其高度可用。

来源:为高度可用的 WordPress 站点构建基础设施。