我正在开发一个社交网站。
从项目的第一天起,我就一直在考虑可扩展性,我已经尽我所能微调了站点和查询。
然而;某些页面的数据量很大,我不太确定它们的加载速度是否尽可能快,因此我正在考虑实现分布式缓存解决方案。
但不太确定我应该缓存什么而不是缓存。或者当前 1 秒的页面加载时间是好是坏。
最重的查询是获取成员(member)信息,此查询获取所有成员(member)的信息以及与他们相关的任何信息,例如在本网站的情况下,他们的目标、博客类型条目、鼓励、照片、状态更新(如 Twitter)、博客信息(用于交叉发布他们的条目) ) 等等等等。
无论如何,我应该缓存这些信息吗?你认为 1 秒的页面加载时间相当快吗?有些页面在 4-6 十分之一秒之间不到一秒。
最佳答案
如果可能的话,我会在应用程序的每一层都实现缓存。
您可以在最高级别缓存页面,在代码级别缓存对象,并确保您的数据库在最低级别正确缓存查询和关键数据。
就您需要缓存的内容而言,任何将被重复访问的对象都应该被缓存,尤其是那些不太可能经常更改的对象。然后,您只能在编辑该对象时重置该对象的缓存。 (注意缓存经常更新的对象,因为在几乎每次加载时替换缓存的恒定循环会降低性能而不是增强性能)
为了衡量性能,我不会考虑加载单个页面需要多长时间,而是使用谷歌搜索一些性能测量工具,因为您确实需要测试每个页面在压力下的执行速度。例如,如果您的用户信息页面很少访问,则它可能不是最大的缓存目标。您应该关注使用最频繁的页面。
关于asp.net-mvc - 缓存的正确信息是什么?什么是好的页面加载时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/218801/