Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
在这种情况下,Redis是单点故障吗(Redis、Node.JS、Socket.IO)?_Node.js_Redis_Socket.io_Scalability - Fatal编程技术网

在这种情况下,Redis是单点故障吗(Redis、Node.JS、Socket.IO)?

在这种情况下,Redis是单点故障吗(Redis、Node.JS、Socket.IO)?,node.js,redis,socket.io,scalability,Node.js,Redis,Socket.io,Scalability,我使用Redis是因为它允许我水平扩展我的应用程序(多台服务器)。通过使用它的pub-sub功能,我的所有服务器都可以相互通信,而无需共享内存 到目前为止,很酷!我们可以添加更多的nodejs服务器,但所有这些服务器都订阅一个Redis服务器。因此,我们有这样一种情况,即我们有许多NodeJs服务器与一台Redis服务器通信,我们可以服务更多的客户端,但我们仍然有一台Redis 从我的测试来看,Redis服务器使用更少的资源,因此可以处理更多的数据,但在这个设计中,我认为它仍然是一个SPF。你觉

我使用Redis是因为它允许我水平扩展我的应用程序(多台服务器)。通过使用它的pub-sub功能,我的所有服务器都可以相互通信,而无需共享内存

到目前为止,很酷!我们可以添加更多的nodejs服务器,但所有这些服务器都订阅一个Redis服务器。因此,我们有这样一种情况,即我们有许多NodeJs服务器与一台Redis服务器通信,我们可以服务更多的客户端,但我们仍然有一台Redis

从我的测试来看,Redis服务器使用更少的资源,因此可以处理更多的数据,但在这个设计中,我认为它仍然是一个SPF。你觉得怎么样


设计可伸缩系统的最佳方法是什么?我知道主/从Redis,但我仍然不确定它是否是最好的解决方案。

是的,Redis是您描述的单一故障点。不仅在某种意义上,当它关闭时,你的应用程序也会关闭,而且在某种意义上,如果你的某个进程删除或损坏了数据,那么它将永远丢失

你能做的就是使用多台Redis服务器并有一个好的备份策略

有关群集,请参见本教程:

有关备份,请参阅以下教程:


这个问题可能更适合于或,因为它关注的是基础设施设置而不是特定的编程问题。@JoeClay在提及其他网站时,指出您不相信的内容通常是有帮助的?Redis与sentinel的复制似乎是您所描述的最好的解决方案。@gnat:是的,很好!这也是为什么许多人开始使用Redis Enterprise Pack的原因,其目的是为了解决这个问题,甚至是集群和sentinel的一些缺点。您的应用程序根本不需要更改,它在后台执行其HA和可用性。