多缓存并存

蝈蝈俊 2008-12-09 10:24:44
加精
昨天在听云风讲的《高性能健壮系统中的内存管理》中,对于其中一些观点很有感触,虽然云风是用C来做网络游戏的,C来做游戏在内存管理上跟网站的内存管理是由很大差异的,但是有很多理论也是相通的。



缓存是大家都知道的东西,对于网站来说,一个请求过来,有可能返回用户需要的数据过程中,使用了不止一个缓存,是多个缓存。即软件架构中,多缓存并存。这时候要注意什么?


简单来说一句话。

你如果要在A缓存外再起用了一个B缓存,那么B缓存能提高的性能应该比起直接访问A,性能要提升10倍以上。



更具体说一个实际的例子,


CSDN某个具体论坛的帖子列表功能,它启用了三个缓存。从用户访问到数据库,依次是:

1、IIS输出缓存

即ASPX页面的如下设置
<%@ OutputCache Duration="30" VaryByParam="*" %>

2、每个请求进程的缓存;

CommunityUser user = null;
//检查用户信息是否在HttpContext中存在
HttpContext context = HttpContext.Current;
if (context != null)
user = context.Items[cacheKey] as CommunityUser;


使用这个缓存是因为一个页面,我们有很多ASCX控件,再加上MasterPage页, 而这些页面对应的代码中,都会需要一些当前用户的信息,如果每次都从更底层的缓存取的话,这个消耗其实也不小。

3、进程外服务上的缓存;
为了保证缓存数据的可扩展性,非IIS进程,其他服务器也可以访问,CSDN的最底层的缓存是使用企业服务来实现的。访问这里的缓存会导致跨进程的,甚至跨服务器的访问。



上面三个缓存, 每个缓存一但命中,对他的访问,比下一级的缓存都起码有10倍以上的性能提高。就类似.net的垃圾回收中的0级对象区,1级对象区,2级对象区。 级数越低,访问性能越高,但是高级数的却是不可缺少的。
...全文
978 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxylvmnn 2011-09-27
  • 打赏
  • 举报
回复
看到24楼,我卡到了。。。
Dear_Heart 2011-08-01
  • 打赏
  • 举报
回复
学习、、、没看懂、能否讲的更详细、
十九块九 2010-12-09
  • 打赏
  • 举报
回复
支持下了啊
君望永远 2010-09-02
  • 打赏
  • 举报
回复
楼主威武~学习了
iopzxc 2010-08-31
  • 打赏
  • 举报
回复
学习,缓存之听说过前面两种。哎。
gerryliu 2009-08-17
  • 打赏
  • 举报
回复
mark
zhang_yu_QIN 2009-08-12
  • 打赏
  • 举报
回复
稍微的理解了一点缓存的机制..

希望以后有更多类似这种的帖子..
ycfan 2008-12-15
  • 打赏
  • 举报
回复
想学习一下
ppp7p 2008-12-13
  • 打赏
  • 举报
回复
不错了,我现在的项目基本上在使用Cache来做缓存另外在再一个页面缓存。
jwrr318260 2008-12-13
  • 打赏
  • 举报
回复
恩,开始学习
jihuifang_1986 2008-12-12
  • 打赏
  • 举报
回复
学习~
PikeWu 2008-12-12
  • 打赏
  • 举报
回复
学习了..
atiansk2006 2008-12-12
  • 打赏
  • 举报
回复
纸上得来终觉浅, 绝知此事要躬行。
ltlp1986 2008-12-11
  • 打赏
  • 举报
回复
受教了。
zjsfdxbao 2008-12-11
  • 打赏
  • 举报
回复
进程外服务上的缓存对Web的性能有帮助吗?
kongwei302 2008-12-11
  • 打赏
  • 举报
回复
受精了~~~
surewy 2008-12-10
  • 打赏
  • 举报
回复
mark
penglewen 2008-12-10
  • 打赏
  • 举报
回复
mark
guolei14186 2008-12-10
  • 打赏
  • 举报
回复
昨天老师刚讲解了这个,有些地方还是不太明白!
小曦子 2008-12-10
  • 打赏
  • 举报
回复
先收藏了..
加载更多回复(15)

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧