在我的web应用程序中,我有两个实现缓存的选项。我可以在我的应用程序代码之外添加一个刷新缓存,并在每个请求URL的基础上缓存响应,或者我可以使用内存缓存(比如memcached )来存储数据库访问的结果。
我很难在这两种实现之间做出选择。我认为添加Varnish会减少代码(不必在是否缓存数据库结果的问题上添加逻辑),但是在基础设施方面增加了一些开销。
使用一种解决方案比使用另一种解决方案还有什么其他好处?还有其他重要的事情我没考虑过吗?
发布于 2016-12-09 09:47:19
您还没有说明需要缓存的原因是什么。
拥有这两种缓存将是理想的情况,因为两者都以自己的方式加快了速度。
我建议你先试试清漆,看看它所提供的改进是否令人满意(大多数情况下是这样)。
如果没有,那么尝试应用级缓存,并尝试根据它们对系统性能的影响(因此,这意味着您必须在不同类型的负载下彻底分析应用程序),然后按性能影响顺序(首先是身份验证和会话相关信息,然后是Db结果等等)尝试一个方面。对于每一个添加,重新配置您的系统,并比较结果。
如果是代码(而不是IO正在减慢速度),您还应该尝试查看是否可以改进代码(如果可能的话)。
一旦你这样做了,你应该能够找到系统的脉搏,你将能够隔离和提高单个齿轮的性能,而不引起complexity.Most -重要的是,当你找到你的平衡时停止--工作超过潜在收益的点。
https://softwareengineering.stackexchange.com/questions/337799
复制相似问题