0

我有多个需要 Memcached 的服务(例如“图书服务”、“客户服务”)。我有两个选择:

  1. 设置一个 AWS Elasticache 集群并共享它,使用键“book-service-key1”、“customer-service-key1”等的前缀方案。
  2. 每个服务设置一个集群。

如果所有服务都使用同一个集群(选项 1),“预订服务”是否会将“客户服务”使用的所有 Memcached 数据保存在内存中,即使它从未使用过这些键中的任何一个?

换句话说,我的问题是:如果我启动一个 memcached 客户端并将其加入集群,它会复制并保存所有数据,还是只保存它访问的数据?

4

1 回答 1

0

Memcache 客户端不会保存任何数据,因此不应该存在一个服务保存来自其他服务的数据的问题。

为每个服务创建多个集群也会增加维护多个集群的开销。此外,在您需要保留缓冲区以存储额外对象的情况下,利用率也会非常低。

如果您可以在避免冲突的情况下正确管理密钥命名,那么拥有至少 2-3 台机器的单个集群会很棒。

要考虑的另一件事是拥有较小的实例,而不是 2 或 3 个大型实例。这样一个内存缓存实例的故障就可以很容易地被数据库吸收。

于 2020-12-03T06:22:16.230 回答