日期:2014-05-17  浏览次数:20564 次

跪求sp1234大哥,网站缓存方案!
小弟自设网站混口饭吃,由于财力不足,所以各方面都要做节省

1U服务器HP DL360 1G,双CPU Xeon3.0G,70G硬盘,托管南北互通线路(100M共享)
我知道好的缓存架构会节省一定的流量浪费,并且能给用户更好的响应体验

但是我个人对缓存没有实际的经验,完全找不到头绪,我先把自己的网站说明一下,然后请SP1234大哥和有经验的朋友指教,非常感谢!

网站内容及应用的部分说明:
网站是关于小型数控机的网站,网站结构类似B2C,栏目分数控机纵览(图片,数据,报价,评论),行业新闻,论坛
商家多用户管理后台(管理商家产品相关),上网注册用户管理后(评论,论坛发贴,上传图片等)
网站管理员:(全站的管理)
网站商品信息更新和查询相对频繁

我知道现在有什么浏览器缓存技术,Asp.net整页缓存,按参数缓存,自定义控件缓存,cache API,数据库缓存等技术,但是就迷糊如何有针对性的使用结合,都愁死我了,跪求sp1234大哥和各位朋友帮忙!

------解决方案--------------------
.
------解决方案--------------------
在aspx頁面上加上
<%@ OutputCache Duration="60" %>
就可以了
------解决方案--------------------
缓存能在很大程度上决定ASP.NET应用的最终性能。Asp.net支持页面输出缓存和页面部分缓存,并提供Cache API,供应用程序缓存自己的数据。是否使用缓存可考虑下面的要点:
1、识别创建与访问代价较大的数据
2、评估需要缓存数据的易变性
3、评估数据的使用频次
4、 将要缓存数据中易变数据和不变数据分离,只缓存不变数据
5、选择合适的缓存机制(除Asp.net Cache外,Application state和Session state也可以作为缓存使用)
------解决方案--------------------
sp1234最近忙于工作,难有时间来啊
------解决方案--------------------


首先,首页做缓存!这是必须的!
有两种方式,
一种是设置规定时间间隔内去数据库更新数据。不推荐,因为效率低!
另外一种是推荐的,就是当数据库内容更新时,才通知首页去更新缓存!

这要看你用那种数据库,当用ms sql 2000的时候,asp.net会对数据库进行轮换查询,看数据库有没有变换,
以决定是否更新缓存!最小的轮换查询时间不能低于500ms!也就是0.5秒种!

当用ms sql 2005的时候,采用的是事件通知,数据库变化会自动通知asp.net更新缓存,不变化就不管它,效率
当然高!

所以最好用ms sql 2005,不过你的内存实在是有点小,用2000吧!

具体例子你可以看www.yy0371.com,我最近做的,就是利用缓存,你看打开首页速度怎么样!


------解决方案--------------------
使用微软企业库的缓存,效果不错,使用方法很简单,网上例子一大堆
------解决方案--------------------
给出实际代码:
web.config
 <system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="times" 
enabled="true" 
duration="3600000" 
sqlDependency="需要缓存的数据库:需要轮换查询的表"/>
</outputCacheProfiles>
</outputCacheSettings>
<outputCache enableOutputCache="true"/>
<sqlCacheDependency enabled="true" pollTime="2000">
<databases>
<add name="数据库名字" connectionStringName="数据库连接字符串" />
</databases>
</sqlCacheDependency>
</caching>
 </system.web>

defult.aspx页面代码:

<%@ OutputCache CacheProfile="times" VaryByParam="none" %>


------解决方案--------------------
对于经常变化的页面,推荐用上面的缓存

对于不经常变化的页面,一句代码搞定,直接放在.aspx页面中!

<%@ OutputCache Duration="可能多久不会变化的时间数,自己随意设置,单位秒比如Duration=3000000" VaryByParam="none" %>
------解决方案--------------------
探讨
使用微软企业库的缓存,效果不错,使用方法很简单,网上例子一大堆

------解决方案--------------------
减少相应延迟:因为请求从缓存服务器而不是源服务器被相应,这个过程耗时更少,让web服务器看上去相应更快; 
减少网络带宽消耗:当副本被重用时会减低客户端的带宽消耗;客户可以节省带宽费用,控制带宽的需求的增长并更易于管理。
可使用微软分布式缓存服务Velocity
http://www.cnblogs.com/Terrylee/archive/2008/12/07/Microsoft-Distributed-Cache-Velocity-Part3.html
http://www.cnblogs.com/WCFGROUP/archive/2008/10/17/1313319.html
------解决方案--------------------