群集web场中的Redis缓存?两个成员节点之间的同步?
好的,我有两个web服务器在WindowsNLB集群环境中运行。服务器在各个方面都是相同的,正如您在NLB集群环境中所期望的那样,每个人都在点击集群名称,而不是单个成员。我们还关闭了群集中成员的关联性 但是,我想做的是为一些大文件(MP3)打开一些缓存。拨号一个特定成员上的Redis节点并点击它很容易,一切都像您所期望的那样工作。我可以从缓存中提取数据,并根据需要提供数据 现在,让我们添加NLB的开销。使用NLB时,您可能不会每次都访问同一个web服务器。您可能会第一次命中成员01,第二次命中成员02。所以,我需要一种在两台服务器之间同步的方法。这样,无论你点击哪个集群成员,你都会得到相同的数据 我不需要担心一个缓存过时,我在其中存储的唯一内容是来自内部web服务的只读数据 我只有2台服务器,看起来redis集群需要3台。所以我想这是不可能的 这是最好的方法吗?或许还有更好的群集web场中的Redis缓存?两个成员节点之间的同步?,redis,Redis,好的,我有两个web服务器在WindowsNLB集群环境中运行。服务器在各个方面都是相同的,正如您在NLB集群环境中所期望的那样,每个人都在点击集群名称,而不是单个成员。我们还关闭了群集中成员的关联性 但是,我想做的是为一些大文件(MP3)打开一些缓存。拨号一个特定成员上的Redis节点并点击它很容易,一切都像您所期望的那样工作。我可以从缓存中提取数据,并根据需要提供数据 现在,让我们添加NLB的开销。使用NLB时,您可能不会每次都访问同一个web服务器。您可能会第一次命中成员01,第二次命中成
redis的理由:我们只希望缓存只在内存中使用。没有写入数据库。我认为这很合适,但需要确保数据在两台服务器上都可用。不可能使用redis multi-master(在两台服务器上都写入)。我可能会说它的复制速度非常快(请查看Redis的slaveof命令) 但是为什么您需要在同一台服务器中使用它呢?将其作为服务访问。因此,每个节点都将访问实际数据。如果主服务器宕机,从服务器将立即转变为主服务器
一个观察:您可能会注意到Redis以异步方式使用磁盘。一个仅附加的文件,它根据大小不时地进行检查点。因此,它通常是一个资源问题。我希望服务器冗余,但使用量非常小,所以为什么只为缓存提供整个服务器?当前web服务器集群的总体使用率非常低。如果它达到了这样的程度,我们有足够的容量,那么我们肯定会考虑将缓存部分剥离到它们自己的服务器上……Nick,因此您将在每台服务器上设置一个节点。一个是主人,另一个是奴隶。因此,您可以在没有额外成本的情况下实现冗余。那么,当我重新启动01(Master)时会发生什么情况?当02重新联机时,它将成为新的主设备,而02将成为从设备吗?我可以相信。既然如此,我会看看什么来找出如何使这成为一种镜像系统?我假设有某种东西可以将奴隶升级为主人,等等,但是当原始主人重新上线时会发生什么呢?等等。这取决于您的配置方式。如果您使用Redis sentinel(在本例中,您至少需要3个sentinel实例),则升级的从属服务器可以保持为主。否则主人,由于它的配置,将尝试承担并再次成为主人。Redis的占地面积很小。你应该试一试。