我正在开发一个甚至还没有在线的网络应用程序。现在实现模缓存或梅卡奇是否为时尚早?我是否应该在下列情况下才使用它:
还是更好地在开发过程中实现?
另外,在哪些情况下,使用缓存接口是不必要的,甚至是不鼓励的?
发布于 2011-12-10 06:25:28
了解你的问题空间
参见memcached自己的wiki:
使用memcached可以使我的应用程序变慢吗? 是的,完全正确。如果您的DB查询都是快速的,那么您的网站是快速的,添加memcached可能不会使它更快。
先让它起作用
任何优化之前,你有一个稳定的,工作的产品是不成熟的。您将花费所有的时间摆弄对应用程序没有任何性能影响的旋钮。
你最好的办法是让它进入工作状态,然后做几件事:
剖面性能
在收集性能数据之前,您将不知道瓶颈到底在哪里。很可能是在你没考虑过的地方。
识别优化收益
评估每个问题领域的潜在性能改进。优先考虑那些能给你带来最佳投资回报的领域。在某些情况下,最好的ROI可能是更多的硬件。
实现优化
一旦确定了需要优化的内容,就创建一个计划并实现它。
资料来源
发布于 2011-12-10 06:44:00
完全不是,memcache只是一个外部存储(它是快速和分布式的),
不折不扣
另外,在哪些情况下,使用缓存接口是不必要的,甚至是不鼓励的?
可能不应该用于关键数据,例如事务。
发布于 2011-12-15 10:38:52
其实,这个问题有两个答案:
首先,正如Will Bickford所提到的,您必须避免过早的优化。您必须有一个工作应用程序来确定可能从性能改进中受益的位置。只有在此之后,您才能尝试应用缓存。
第二,为将来的负载设计应用程序。这意味着在开始编写代码之前,您应该尝试回答以下问题:“如果应用程序必须处理负载,比方说,比现在计划的负载多10,000倍,那么我的设计将如何改变?”这通常会导致一种更高级的(就像贯穿式的)设计,它可以扩展到多个服务器,并且需要在服务器之间共享状态,因此需要分布式缓存。如果你不回答这个问题,你很有可能迟早要重写你的应用程序。
换句话说,设计面向未来,实现面向今天。
希望这能有所帮助。
斯拉瓦·伊米涅夫
https://stackoverflow.com/questions/8454834
复制相似问题