Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Redis复制和集群差异_Java_Node.js_Spring_Caching_Redis - Fatal编程技术网

Java Redis复制和集群差异

Java Redis复制和集群差异,java,node.js,spring,caching,redis,Java,Node.js,Spring,Caching,Redis,目前,我的Spring boot应用程序有一个redis服务器 现在我想让redis服务器高可用性,我应该遵循哪种方法 例如,我会有主人,奴隶和哨兵设置,如果我的主人自动下降,新的主人得到选择和应用程序正常工作这种方法称为自动故障切换复制吗? 另一方面,集群与上述(复制)设置有何不同。它是否还支持sentinel服务器进行自动故障切换 在数据方面,我读到,集群在多个节点之间分割数据,而relication在所有从属节点中都有主节点数据的精确副本。在这种情况下,在群集的多个节点中拆分数据,如果某些

目前,我的Spring boot应用程序有一个redis服务器

现在我想让redis服务器高可用性,我应该遵循哪种方法

例如,我会有主人,奴隶和哨兵设置,如果我的主人自动下降,新的主人得到选择和应用程序正常工作这种方法称为自动故障切换复制吗?

另一方面,集群与上述(复制)设置有何不同。它是否还支持sentinel服务器进行自动故障切换


在数据方面,我读到,集群在多个节点之间分割数据,而relication在所有从属节点中都有主节点数据的精确副本。在这种情况下,在群集的多个节点中拆分数据,如果某些节点出现故障,将导致数据过时的情况。

如果一台机器上的数据多于RAM,请使用redis cluster在多台机器之间共享数据。Redis cluster本身支持主从复制和故障切换,不需要sentinel。如果节点出现故障,它将继续工作,直到大多数主节点出现故障

如果计算机上的数据少于RAM,请在前面设置一个带sentinel的主/从复制来处理故障切换


如果一台机器上的数据多于RAM,请使用redis cluster跨机器共享数据。Redis cluster本身支持主从复制和故障切换,不需要sentinel。如果节点出现故障,它将继续工作,直到大多数主节点出现故障

如果计算机上的数据少于RAM,请在前面设置一个带sentinel的主/从复制来处理故障切换


但是在redis集群中,一些主节点不能有一些数据,对吗?在这种情况下,如果请求获取数据,它是否搜索所有主控中的数据?如果没有,是否会导致过时的数据情况?当客户端连接到群集节点并请求数据时,该节点将使用数据(如果有的话)进行响应,或者告诉客户端哪个其他节点包含数据。除非出现问题,否则不应该有过时的数据。事实上,客户机必须知道它所访问的集群节点。所有Java客户端都会这样做,因此客户端会选择与之对话的节点来读取或写入特定密钥。@ChrisTanner在redis复制中,我们如何将读取配置为仅在从机中发生?写入发生在主节点上,读取发生在从节点上,这是默认行为吗?@Harshana您的应用程序代码需要请求主节点或从节点。但是在redis集群中,某些主节点不能正确地拥有某些数据?在这种情况下,如果请求获取数据,它是否搜索所有主控中的数据?如果没有,是否会导致过时的数据情况?当客户端连接到群集节点并请求数据时,该节点将使用数据(如果有的话)进行响应,或者告诉客户端哪个其他节点包含数据。除非出现问题,否则不应该有过时的数据。事实上,客户机必须知道它所访问的集群节点。所有Java客户端都会这样做,因此客户端会选择与之对话的节点来读取或写入特定密钥。@ChrisTanner在redis复制中,我们如何将读取配置为仅在从机中发生?写入发生在主程序中,读取发生在从程序中,这是默认行为吗?@Harshana您的应用程序代码需要请求主程序或从程序。