2016-02-23 28 views
0

好吧,我所拥有的是在Windows NLB集群环境中运行的2个Web服务器。服务器在各个方面都是相同的,并且正如您在NLB集群环境中所期望的那样,每个人都击中集群名称,而不是单个成员。我们还关闭了群集中的成员。群集Web场中的Redis缓存?两个成员节点之间的同步?

但是,我想要做的是打开一些缓存的一些大型文件(MP3)。在一个特定的成员上拨打一个Redis节点并点击它很容易,一切都如你所愿。我可以从缓存中提取数据并根据需要提供。

现在,让我们添加NLB的开销。使用NLB时,您可能不会每次都碰到同一个Web服务器。你可能会第一次打到成员01,第二次打到02.所以,我需要一种在两台服务器之间同步的方法。这样,你打哪个集群成员并不重要,你将获得相同的数据。

我不需要担心一个缓存过期,我在那里存储的唯一内容是只读取来自内部Web服务的数据。

我只有2台服务器,它看起来像redis集群需要3个。所以我想这就是了。

这是最好的方法吗?或者还有其他更好的东西?

redis的原因:我们只希望缓存仅使用内存。没有写入数据库。认为这将是一个不错的选择,但需要确保数据在两台服务器上均可用。

回答

0

不可能拥有redis multi master(在两者上都写)。我可能会说它的复制速度很快(检查Redis的slaveof命令)。

但为什么你需要它在同一台服务器?作为服务访问它。所以每个节点都将访问实际的数据。如果主服务器出现故障,从服务器会立即将自己变成主服务器。

一个观察:您可能会注意到Redis以异步方式使用磁盘。一个只附加文件,它会根据大小不时检查点。

+0

大部分这是一个资源的事情。我想要冗余的服务器,但是使用率很小,所以为什么要为整个服务器提供缓存?当前Web服务器集群的总体使用量非常小。如果它达到了我们拥有体面的音量的程度,那么我们肯定会考虑将缓存部分分离到他们自己的服务器上...... –

+0

尼克,这样你就可以在每台服务器上设置一个节点。一个是主人,另一个是奴隶。所以你可以在没有额外成本的情况下使用冗余 – otaviofcs

+0

那么当我重新启动01(Master)时会发生什么? 02将成为新的主人,而02在网上回来时将成为奴隶?我可以买入。 –