我正在开发一个甚至还没有在线的网络应用程序。从现在开始实施memcache或memcached 有点为时过早?我应该只在以下情况下使用它吗?
或者在开发过程中实施更好?
另外,在哪些情况下使用缓存接口是不必要的甚至是不鼓励的?
答案 0 :(得分:4)
请参阅memcached自己的wiki:
使用memcached可以让我的应用程序变慢吗?
是的,绝对的。如果您的数据库查询都很快,那么您的网站就是 快速,添加memcached可能不会让它更快。
在拥有稳定的工作产品之前进行的任何优化过早。您将花费所有时间摆弄对您的应用程序没有性能影响的旋钮。
最好的办法是让它进入工作状态然后做几件事:
在收集效果数据之前,您根本不知道瓶颈究竟在哪里。很可能他们在你没有考虑的领域。
评估每个问题区域以获得潜在的性能改进。优先考虑能够带来最佳投资回报率(投资回报率)的领域。在某些情况下,最佳投资回报率可能是更多硬件。
一旦确定了需要优化的内容,请制定计划并实施。
答案 1 :(得分:0)
完全没有,memcache只是一个外部存储(快速且分布式),
不多也不少
另外,在哪些情况下使用缓存接口是不必要的甚至是不鼓励的?
可能不应该用于关键数据,例如交易
答案 2 :(得分:0)
实际上,这个问题有两个答案:
首先,正如Will Bickford所说,你必须避免过早优化。您必须有一个有效的应用程序来确定可能从性能改进中受益的位置。只有在那之后你才可以尝试应用缓存。
其次是为将来的负载设计应用程序。这意味着在开始编码之前,你应该尝试回答这个问题:“如果应用程序必须处理负载,我的设计会如何改变,比如说现在计划的数量是现在的10,000倍?”这通常会导致更高级(如通过)设计,适应多个服务器的扩展,并且需要在服务器之间共享状态,因此需要分布式缓存。如果你不回答这个问题,你很可能迟早要重写你的申请。
换句话说,为未来而设计,为今天实施。
希望这有帮助。
Slava Imeshev