我正在开发一个社交网站。
从项目的第一天起,我就一直在考虑可伸缩性,我已经对网站和查询进行了微调,尽我所能。
但是,某些页面的数据量非常大,我不太确定它们是否能以最快的速度加载,所以我正在考虑实现一个分布式缓存解决方案。
但是不太确定我应该缓存什么,而不是缓存什么。或者1秒的当前页面加载时间是好是坏。
最繁重的查询是抓取成员信息这个查询获取所有成员的信息和任何与他们相关的信息,例如他们的目标,博客类型条目,鼓励,照片,状态更新(如twitter),博客信息(用于交叉发布他们的条目)等。
不管怎样,我应该缓存这个信息吗?你认为1秒的页面加载速度是合理的吗?有些页面不到1秒,在4-6十分之一秒之间。
发布于 2008-10-20 15:28:19
如果可能的话,我会在应用程序的每一层实现缓存。
您可以在最高级别缓存页面,在代码级别缓存对象,并确保数据库在最低级别正确缓存查询和关键数据。
就需要缓存的内容而言,任何将被重复访问的对象都应该缓存,特别是那些不太可能经常更改的对象。然后,您可以仅在编辑该对象时重置该对象的缓存。(对于频繁更新的缓存对象要小心,因为几乎每次加载时替换缓存的循环都会降低性能,而不是增强性能)
为了测量性能,我不会看一个页面加载需要多长时间,而是使用谷歌的一些性能测量工具,因为你真的需要测试每个页面在压力下的执行速度。例如,如果您的用户信息页面很少被访问,那么它可能不是最大的缓存目标。你应该专注于使用率最高的页面。
发布于 2008-10-20 15:27:57
典型的答案是:
在您的示例中,您可以在平面文件中缓存所有内容(例如每个用户一个文件),并在相应的更新某些内容时销毁用户缓存文件。如果缓存文件不存在,则在显示关联内容之前创建缓存文件。
现在关于加载时间(根据用户位置的不同可能会有很大的不同),这里有一些来自游戏网站的PHP论坛的信息性数字:
这被社区认为是一次很好的体验。但这是非常主观的。
发布于 2008-10-20 15:25:01
页面加载问题已被询问:
对于动态、个性化的web应用程序来说,什么是好的响应时间?
在缓存方面,您必须衡量每次加载数据所花费的时间与从缓存加载数据所花费的时间。缓存越大,它的效率就越低。所以你不想把太多的数据加载到缓存中。我们在这里使用的是滚动缓存,一旦达到缓存大小限制,最近最少使用的数据就会被丢弃。然后根据实际性能结果调整限制。
https://stackoverflow.com/questions/218801
复制相似问题