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
使用Nginx与Redis进行缓存,使用Nginx进行代理和负载平衡_Nginx_Redis_System Design - Fatal编程技术网

使用Nginx与Redis进行缓存,使用Nginx进行代理和负载平衡

使用Nginx与Redis进行缓存,使用Nginx进行代理和负载平衡,nginx,redis,system-design,Nginx,Redis,System Design,我对扩大我在设计大规模分布式系统方面的知识感兴趣。我遇到过缓存和代理服务器的主题。例如,对于代理服务器,我们使用Nginx,Nginx也有自己的缓存。现在,Nginx和Redis内部缓存的主要区别是什么?特别是我读了很多关于代理服务器的文章。我没有完全理解这些代理服务器的意义。有些文章确实提到了负载平衡器、代理和缓存是在Nginx本身中完成的,有些文章为它们分别提供了单独的服务器。有谁能用更好的方式来阐述这些问题吗?提前感谢。他们各尽所能。NGINX可以缓存您部署的静态资产,还可以缓存来自后端服

我对扩大我在设计大规模分布式系统方面的知识感兴趣。我遇到过缓存和代理服务器的主题。例如,对于代理服务器,我们使用Nginx,Nginx也有自己的缓存。现在,Nginx和Redis内部缓存的主要区别是什么?特别是我读了很多关于代理服务器的文章。我没有完全理解这些代理服务器的意义。有些文章确实提到了负载平衡器、代理和缓存是在Nginx本身中完成的,有些文章为它们分别提供了单独的服务器。有谁能用更好的方式来阐述这些问题吗?提前感谢。

他们各尽所能。NGINX可以缓存您部署的静态资产,还可以缓存来自后端服务器的响应,具体取决于它们的缓存控制设置。这对于重复下载的数据、JS/HTML/image文件等都很有用。它还可以缓存HTTP响应,以响应它接收到的相同请求


但是,在您的应用程序中,您可能会决定某些数据的计算成本很高,或者会被重复请求,因此您决定将这些数据缓存在Redis中。这可以是您选择的任何数据,不一定是HTTP请求的整个API响应,甚至可以是中间数据,您不希望访问数据库,而是希望从缓存返回结果。

我可以得出结论,我们可以根据数据类型在需要的任何位置缓存,计算频率和其他此类参数。缓存是我们在设计中可能需要的任何地方都可以包含的东西,而不是完全依赖于整个系统中的一个缓存单元。我的理解正确吗?@NikhileshAS Cache是一个概念,它将重复访问的数据存储在一个提供更快访问的系统中。该缓存的实现方式取决于系统和问题。在CPU上,这是一个低延迟内存。在作为一组复杂的交互服务部署的云应用程序中,可能有大量缓存和代理服务。每个配置都与工作负载/用例相匹配。没有一刀切的办法,影响决策的因素很多。例如,将工具集标准化为Redis和Nginx。在某些情况下,专门构建的缓存速度更快。