我将为我的项目创建一个集群。
我搞不懂我应该在我的系统上采用哪种策略。
有许多Web App服务器和database服务器。
查询需要几秒钟才能完成。
因此,我更愿意尽可能多地使用缓存。
该集群在AWS上处于弹性伸缩控制之下。
那么,我是不是应该把所有的缓存都放在redis server中,让所有的Web app都能访问它呢?

发布于 2015-08-03 19:43:17
这不是一劳永逸地解决缓存问题的灵丹妙药。缓存是一系列提高性能的技术。
其中一些最重要的技术是:
(http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching) -避免昂贵的渲染操作- Model caching
缓存的实际存储位置在一定程度上取决于缓存的类型。
在某些情况下,将缓存存储在共享的Redis服务器中可能会带来更好的性能,因为访问冷缓存的请求会更少。但是,从缓存服务器跨网络传输数据比在单个应用程序服务器上传输数据要慢。
总是需要考虑权衡。
发布于 2015-08-08 00:36:29
麦克斯说的是唯一正确的答案:没有正确的答案。
缓存的目的是限制发送到服务器的可行请求的数量。我通常做的是:
再说一次,这需要权衡。陈旧的数据从来都不是100%好的。缓存是不能解决所有问题的创可贴。它只能帮助减少损害(访问服务器的成本)。
发布于 2015-08-08 00:45:55
首先,如果不知道您的项目有什么类型的请求(即多个用户的共享数据与每个用户都有其独特的数据),就很难对缓存设置给出一个真正的建议。
如果查询需要几秒钟才能完成,您是否尝试过首先解决这个问题,并尝试对其进行优化?甚至可以将技术从MongoDB转换到常规的SQL存储?缓存只会在后续调用中起作用,而不会在第一个调用中起作用。
正如其他人所说,缓存在某些情况下可能会有所帮助,但是让redis启动并运行,并为rails应用程序的多个实例提供动力,这会增加设置的复杂性,而缓存策略只有在您重复访问相同的数据时才会有帮助。
https://stackoverflow.com/questions/31783508
复制相似问题