什么是分布式caching?

我对分布式caching的概念感到困惑。 我有点知道谷歌search是什么。 分布式caching可能跨越多个服务器,因此它可以在规模和事务处理能力上增长。 但是,我不太了解它是如何工作的,或者它如何分配数据。

例如,假设我们有数据1,2,3,4,5,6,7,8,9,102caching服务器A和B. 如果我们使用分布式caching,则可能的解决scheme之一是数据1,3,5,7,9存储在caching服务器A中,并且2,4,6,8,10存储在caching服务器B中。

那么这是正确的还是我误解了?

第二个问题是我通常听到服务器节点这个词。 它是什么? 在上面的例子中,服务器A是一个服务器节点,对吗?

第三个问题,如果服务器(假设服务器A)出现故障,我们可以做些什么? 我的意思是,如果我上面的例子是正确的,我们不能从caching中获取数据1,3,5,7,9,当服务器A停机时,那么Cache Server在这种情况下可以做什么?

  1. 是的,服务器a上的一半数据,服务器b上的一半数据将是分布式caching。 有很多分发数据的方法,虽然某些键的散列似乎是最stream行的。

  2. 术语服务器和节点通常是可互换的。 一个节点通常是某个集合的单个单元,通常称为集群。 一个服务器通常是一个单一的硬件。 在erlang中,你可以在单个服务器上运行erlang运行时的多个实例,因此你会有多个erlang节点…但是通常你会想每个服务器有一个节点来获得更好的调度。 (对于非分布式语言和平台,您必须根据您的需求来pipe理您的stream程。)

  3. 如果一台服务器出现故障,而且是一台caching服务器,那么数据将不得不从其原始的来源。 EG:caching通常是基于内存的数据库,专为快速检索而devise。 caching中的数据只要经常使用,最终都会被清除。 但对于需要持久性的分布式系统,常见的技术是拥有多个副本。 EG:你有服务器A,B,C,D,E和F.对于数据1,你可以把它放在A上,然后在B和C.Couchbase和Riak上做一个拷贝。 对于数据2,它可能在B上,然后在C和D上复制。这样,如果任何一台服务器出现故障,您仍然有两个副本。