session - Redis Sentinel,独立或集群,哪个最适合 session ?

标签 session redis redis-sentinel redis-cluster

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

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

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

最佳答案

集群

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

主/从(带哨兵)

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

独立

对于不属于集群(单服务器*)的小型站点或登录信息对用户体验或操作不重要的站点,这是一个不错的选择,例如仅需要在可公开访问的博客上发表评论。一个简单的“稍后再试”消息将起作用。

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

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

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

关于session - Redis Sentinel,独立或集群,哪个最适合 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53060714/

相关文章:

sql - MySQL 每 x 分钟调用一次存储过程

node.js - 获取Redis数据库的ReadStream

lua - 使用多个键连接集合

docker - redis-sentinel 抛出错误 : "Can' t resolve master instance hostname.“

node.js - 如何连接部署在谷歌云上的redis?

redis - 如何运行redis sentinel监控redis服务器

powershell - 是否可以创建用户定义的 PowerShell 环境?

java - 我们必须关闭 session 对象吗?

php - 数据库支持的 session 数据字段从 TEXT 更改为 LONGTEXT

redis - 是否可以在 key 过期之前 Hook redis