首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

跪求sp1234大哥,网站缓存草案

2012-09-07 
跪求sp1234大哥,网站缓存方案!小弟自设网站混口饭吃,由于财力不足,所以各方面都要做节省1U服务器HP DL360

跪求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
------解决方案--------------------


探讨
up

男儿膝下有黄金

[解决办法]
C#就那么几种缓存依赖, 你巴着手指头数数, 10个手指头都用不完. 你自己查查MSDN不是有了. 啥都等着人教.
[解决办法]
看看cacheDependency这个类
[解决办法]
我X,我把实际代码都给你了, 还白开水啊,asp.net的缓存无非就是页面缓存和sql数据库依赖缓存,代码都给你了,你还巴望我给你说些啥呢,
[解决办法]
探讨
我X,我把实际代码都给你了, 还白开水啊,asp.net的缓存无非就是页面缓存和sql数据库依赖缓存,代码都给你了,你还巴望我给你说些啥呢,

[解决办法]
缓存只是相应时间的缩短,真正要达到用户体验的高效,还有其他的方面。
1.图片大小:显示多大图片就应该是多大,别弄大了;
2.图片分割:可能用的比较少了吧;
3.html代码量:这个是最重要的,着重说一说。不管你是什么语言,什么架构,最终落实到用户页面上的,始终是html代码,于是,高质量的代码必不可少。减少html文件的大小可以极大的减少网络负荷。在html中,标签之间的文章中的空格是没有任何实际意义的,而且会占用极大的空间,消除这种无意义空格显得特别有意义,推荐一点方法。
C# code
        /// <summary>    /// 压缩html代码    /// </summary>    /// <param name="writer"></param>    protected override void Render(HtmlTextWriter writer)    {        System.IO.StringWriter html = new System.IO.StringWriter();        HtmlTextWriter tw = new HtmlTextWriter(html);        base.Render(tw);        string outhtml = html.ToString();        outhtml = System.Text.RegularExpressions.Regex.Replace(outhtml, "\\n+\\s+", string.Empty);        outhtml = outhtml.Trim();        writer.Write(outhtml);    }
[解决办法]
我以前也为这方面费了不少心,最后还是生成了静态页面....不过还看看sp1234怎么说吧.....
[解决办法]
呵呵,要达到减轻服务器压力办法很多 页面缓存只是一种解决办法。
应该考虑下:
编写代码时候,减少客户端与服务器交互的次数。
减少客户端和服务器段的交互代码量。
写存储过程的时候,逻辑上考虑下存储过程优化。
设计数据库的时候考虑规范和适用性,减少没必要的查询。
数据库多库的时候,要进可能减少库间的耦合。必要的时候尽量使用缓存来解决查询,比如根据用户ID 获取用户名
当然了,很多页面静态化也是不错的选择
......

[解决办法]
学习。。。学习。。。帮顶!~不知道问题解决了没。。

热点排行