缓存集群部署拓扑

Cache Cluster deployment topology

我打算为一些 public 面向网络工作负载部署一个内存缓存集群(当前考虑的是 Redis),并且想知道集群应该位于何处(部署拓扑),IMO 有两个选择:

  1. 位于 Web 层(可水平扩展)
  2. 在 Web 层之后和 DB 层之前创建一个专用缓存集群。

Web 和数据库层 运行 上 Windows 上的背景应用程序,因此如果我将集群固定在 Web 层上,那么它需要在 Windows 上得到支持(MSFT 有一个稳定的 Redis 端口),如果我使用专用缓存层,我在考虑一些轻量级 Linux 服务器(HA 集群),这意味着当 Web 层水平扩展时,它使用这个缓存集群进行查找,例如参考资料等

优点、缺点想法,还有其他选择吗?

*请注意,我没有使用云服务提供商的奢侈 "cache as a service",不幸的是,这不是一个选择......

干杯,

对缺乏围绕 Redis 和缓存的社区支持感到惊讶。

为了回答我的问题,我最终选择了 Linux (RHEL) master/slave Redis 缓存层,选择了 master/slave 部署拓扑,在缓存层为我提供 HA(而不是 Redis 缓存集群)。 Master给我写,master/slave允许读。适合我的需要,因为我将在缓存未命中时转到数据库,将 Redis 配置为从不持久保存到磁盘(仅限内存中)。