首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在为多个应用程序/应用程序的多个实例缓存持久数据方面,什么是分布式缓存?

在为多个应用程序/应用程序的多个实例缓存持久数据方面,什么是分布式缓存?
EN

Stack Overflow用户
提问于 2013-07-12 12:55:15
回答 1查看 542关注 0票数 0

我尝试研究分布式缓存已经有一段时间了,并且一直没有澄清下面列出的某些问题:

  1. 分布式缓存是否意味着缓存应该是分布式的或分布式的应用程序,同时以一致的方式使用持久数据的缓存。
  2. 如果缓存也是分布式的,那么它们是否需要在缓存条目方面是不相交的,或者它们可以共享它们,或者每个缓存中的缓存条目应该是相同的。
  3. 缓存应该驻留在哪里。在应用程序过程或外部化内部,如果这两种方法都是可行的,那么在何种情况下哪种方法应该是首选的。
  4. 在进程分布缓存的情况下,如何进行一致性通信。
  5. 如果缓存位于应用程序实例之外,是否可以以一种不相交的方式分配缓存并保持它们之间的一致性,或者最好是维护一个缓存(或多个不连接)。
  6. 在缓存实例从应用程序实例外化的情况下,网络开销可能有多大。或者在尝试构建分布式缓存解决方案时,应该如何关注网络开销(进程到缓存通信)。

我在一些事情上有点新手,所以上面列出的某些问题甚至可能毫无意义。对此也提出了解决办法/纠正办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 16:30:03

我最好的答案是:

  1. 我可以说两者都是。分布式缓存意味着缓存的逻辑思想分布在多台不同的机器上。例如,缓存中可能有5个节点,每个节点都在机器/VM上。 通常,一旦您需要一个分布式缓存,您的应用程序也是分布式的。小型网站=一个服务器,也许是一个缓存节点。大网站=许多web服务器,分布式缓存。
  2. 大多数分布式缓存在节点之间平均分配缓存项。如果将条目写入一个节点,则它将被复制到所有其他节点。这样做的想法是,每个缓存节点都可以从“集群”中取出,并且不会丢失任何数据。 在一台机器上有一个缓存条目的想法称为分片。这意味着您查看缓存键,然后决定将其存储在哪个缓存节点上。 对于现有的分布式缓存,您不应该管理/担心这一切。
  3. 对于分布式缓存,它们应该在自己的机器上运行其他进程。缓存通常驻留在内存中,所以您不希望其他东西竞争这个宝贵的RAM。 从技术上讲,您可以将web服务器与缓存节点放在同一台机器上,但要知道,它们将争夺物理资源。
  4. 不必为那事担心了。)每个分布式缓存的行为不同,因此对其进行读取是很好的,但它们都是自己处理数据复制的。你不应该担心它/管理它。
  5. 我会维护一个分布在许多机器上的逻辑缓存。同样,这样做的原因是为了防止节点崩溃。如果缓存节点出现故障,并且它的值在其他任何地方都不存在,那么您将遇到很大的麻烦。(数据库可能无法满足缓存正在处理的请求。)
  6. 问得好。=)如果盒子位于同一个内部网络上,那么成本非常非常低。只要缓存不在西海岸,web服务器位于东海岸,您就应该没事。当然,这是要付出代价的,但是有一些创造性的方法可以绕过它。

希望这能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17615418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档