Jcs对大数据量的处理方案

    Jcs的原理是利用缓存获取用户所需要的数据,减少对数据库的访问,从而提高存储效率。实现该方案的需要解决两个问题:

1.   缓存的数据从哪来

2.   缓存的数据的有效性

1.   缓存的数据从哪来

    从根源来讲,缓存的数据应当在查询过数据后放入cache,通常用户在进行业务流程时,查询数据、放入缓存。但是这样存在一个问题,第一次查询不会用到缓存,如果第一次查询时的数据量非常巨大,jcs就没有作用了。

提前加载

当用户登录系统时,用户身份验证通过后,将所需数据放入缓存,这样在用户第一次查询数据时就可以用到cache。

优点:第一次查询就能提高效率;

          命中高,根据用户id查询,cache中必然包含该用户所需的信息;

缺点:登录时间会变长,影响用户体验;

系统加载

当系统启动时,使用filter进行提前加载,将常用数据使用jcs进行缓存。

优点:第一次查询能够使用缓存,相对前一种方式,用户登录的数据也可以从缓存中获取;

         缓存数据全(无用户信息,因此进行全量查询缓存);

缺点:数据容易失效,针对变更频繁数据不宜使用;

         针对大量数据(万级以上),jcs效果会折扣;

基本缓存

最常用的方式,当用户第一次查询数据时,将数据放入缓存,缓存的数据会在用户使用的过程中逐渐补全;

优点:性能高,放入缓存的数据量通常很小;

          高可靠性,使用缓存不当,容易产生脏数据(缓存未更新,与实时数据不符),该方法可以提高数据更新率,防止脏数据。

缺点:第一次无法使用;

          缓存数据健全过程慢;

2.   缓存数据的有效性

缓存的数据需要进行更新,从而保证数据的有效性。通常来说有两个步骤:① 删除旧数据; ② 补充更新

①   删除旧数据的前提是数据发生了变更,如modify、delete等操作。此时需要从缓存中将旧数据更新(含删除)。

      针对多工程的数据共享有两种方案:

          1)使用消息的方式,通知其他共享服务器更新缓存(如MQ消息服务);

          2)使用缓存服务器,统一存放缓存(jcs提供相关功能);

②   补充更新的方案可以结合上面提到的缓存的数据从哪来,使用提前加载、基本缓存等方式,可以快速实现数据的更新,保证数据的完整。

补充一句话:没有完美的解决方案,只有针对不同情况产生的最优方案!

猜你喜欢

转载自winnie825.iteye.com/blog/1350503