>>我也没说所有数据都在缓存里,问题是内存是昂贵的,你每台服务器都缓存一份对象,消耗几倍的内存,性能是不是有几倍的增长呢.举个例子:一共10G数据,你5台服务器,每台2G缓存,一共就缓存2G数据,还有大部分数据在硬盘上,如果不分布,一台10G内存,全部数据都在内存里.如果觉得数据这词不好,可以换成对象.那个方案性能更好呢?
呵呵,并不是说所有的数据都放到内存,因为缓存有置换算法,比如FIFO,LFU,LRU等,我们可以根据系统的运行情况来改变的。那些经常不使用的对象,缓存系统会动态的清除,而只有那些经常用的对象才会在缓存中呵呵。
至于你所说的每个服务器10G的内存相当于缓存2G的内容,其实这个时候,你要用分布式的缓存了,可以采用集中控制的策略,就好比SNA架构那样,在数据库前面架设缓存服务器,所有的服务器获得数据都是从集中的分布式缓存服务器拿,缓存中的数据其实没有备份的,并不是您理解的集群环境下的session复制。
还有一点需要声明的就是:缓存中的对象其实都是从根据系统运行的动态特性,从DB加载的,如果一台缓存服务器宕掉了,也没事,大不了从DB重新加载一次呵呵。
也许您做了很多企业级的系统,呵呵,我也理解企业级系统数据是很重要,最近我公司的建行项目,我也看出来了,性能对于银行来说,不重要,即使这个系统性能有问题,不是我们的问题,我们会说要换高性能的服务器了,如果还是有性能问题,我们会说IBM的东西都用了,还是性能不行,我们也没办法。但是其实您也可以换种角度考虑的,我以前也是思路换不过来,其实等换过来了,由是一种新的思路,只不过平时做银行的项目,还得按照人家的平台来哈哈。人家也许更加讲究项目管理,比如100多号人的项目组做3年的系统,我公司就有一个例子,这个时候项目管理就很重要了呵呵。