0

我们有多个应用程序(大约 500 个)托管在不同的服务器 (IIS) 上。出于缓存目的,目前正在使用 .Net Enterprise Library(内存中)。但是当缓存增长时,这是应用服务器的开销。因此,我们计划使用 Redis 保留分布式缓存。

要求:多个应用程序会将数据写入/读取到/从redis缓存中。但是,我们希望将每个应用程序的数据分开。这样,嘈杂的应用程序不会对其他应用程序产生影响。此外,当它被隔离时,它会提高数据搜索性能。

Redis 支持不同的解决方案(模式),例如 Standalone、Sentinel 和 Cluster。

我相信“独立”模式会像这样工作。在 Redis 服务器中,将有一个 redis 实例,可以在其中创建数据库。使用这种模式,多个应用程序的数据将存储在同一个数据库中。这可能使我们无法在应用程序级别存储数据。虽然我们可以使用命名空间(key 的前缀)来识别应用程序特定的数据,但越来越多的应用程序和数据会对应用程序的 key 搜索产生影响。此外,由于它是单线程的,因此预计在高峰时段会对操作产生影响。

考虑到上述要求,包括可扩展性和高可用性,请提出最佳模式。

PS,我们将redis安装在与应用服务器分开的专用服务器中。

4

1 回答 1

0

这里没有足够的信息来提出可靠的建议。

  1. 正在考虑哪种类型的吞吐量?

At peak all of our applications will have a combined throughput of 50K ops/second

  1. 缓存中将存储多少人项和大小?

5M keys of average size 256bytes

  1. 停机时间的 SLA 和影响是什么?

need 95% uptime and downtime is not critical as the application can still function

  1. 你的 SRE 经验水平如何?

We have a crack staff of Follow the sun SREs

如果您有高 SLA 和低吞吐量和内存要求,Sentinel 可能会工作。

如果您有高 SLA 和高吞吐量和内存要求集群。

如果您的 SRE 级别较高,则上述任何一个选项都可以使用,但如果不是这种情况,您可能需要考虑托管或商业支持的选项。

于 2021-12-13T22:59:09.243 回答