[ASP.NET]有关缓存的一点点小思考(1)
一个很大的网站,就类似CSDN这样的假如说要是它在更新网站的时候我访问他更新了一半的网页,会产生什么后果?
较轻的是出现错误页面,让某些人知道了某些不该知道的某些东西,严重的是整个网站玩完,数据库被delete了或者插入了上百万条没有的记录。。。。这就不好玩了。而缓存的出现解决了这一问题。用户看到的是你缓存里的内容,等你全部更新完毕后,更新缓存,只要用户刷新就能看到新内容。现在各大论坛都是这么做的,像DZ、DEDE都是怎么做的。
这是我突如其然的一个想法,赶紧记录下来。。。要不一会就忘了。。。
我想的是在后台有一个控制类,专门控制用户访问的是哪些页面,首先,这个累他自己不会自动的产生缓存文件,只有用户登录以后,按照用户的需求,把这个用户相关的网页都整合到缓存里,然后把缓存拿给用户看,过了一段时间,缓存失效了,在重新生成,或者管理员在后台手动的把服务器的缓存整个重新生成一遍。
要是就几百个用户问题不到,就是把缓存放在内存里都可以,但是假如说用户到了80亿,就是整个地球全人类都有一个帐号,那么他们的缓存放哪?放在硬盘里?估计够呛。。。。所以说我这个想法有点不符合实际,因为服务器的内存和磁盘空间是制约缓存的一个重要的指标。虽说现在的服务器都很NB,125核的CPU,1TP的内存,N TP的硬盘列阵,但是也架不住人多啊,要是跟QQ一样,80亿人每个人平均申请10个帐号就是800亿个。。。。。这是多么庞大的一个数字啊!!这么多的东西要保存起来,而且读取速度要快,我是在想不出有什么好办法能实现这个。。。服务器集群么?
嗯,就算是你能容纳下这么多的东西,但是速度呢?速度怎么办?牺牲了么?要是更新的话要重新创建800亿人的缓存。。。。那1个月就不用上班了。。。而我说的这只是正常情况,万一哪天有个某某组织看你不顺眼,,给你来个hacked by XXXXX 所有的东西都要重新弄,除非你是孙悟空,要不累死你也弄不完。
到现在我写了好几篇日志了,每到晚上熄灯以后,灵感那是挥之不尽啊。。。。就是晚上停电是个悲剧的事情。。。