Jcs的原理是利用缓存获取用户所需要的数据,减少对数据库的访问,从而提高存储效率。实现该方案的需要解决两个问题:
1. 缓存的数据从哪来
2. 缓存的数据的有效性
1. 缓存的数据从哪来
从根源来讲,缓存的数据应当在查询过数据后放入cache,通常用户在进行业务流程时,查询数据、放入缓存。但是这样存在一个问题,第一次查询不会用到缓存,如果第一次查询时的数据量非常巨大,jcs就没有作用了。
提前加载:
当用户登录系统时,用户身份验证通过后,将所需数据放入缓存,这样在用户第一次查询数据时就可以用到cache。
优点:第一次查询就能提高效率;
命中高,根据用户id查询,cache中必然包含该用户所需的信息;
缺点:登录时间会变长,影响用户体验;
系统加载:
当系统启动时,使用filter进行提前加载,将常用数据使用jcs进行缓存。
优点:第一次查询能够使用缓存,相对前一种方式,用户登录的数据也可以从缓存中获取;
缓存数据全(无用户信息,因此进行全量查询缓存);
缺点:数据容易失效,针对变更频繁数据不宜使用;
针对大量数据(万级以上),jcs效果会折扣;
基本缓存:
最常用的方式,当用户第一次查询数据时,将数据放入缓存,缓存的数据会在用户使用的过程中逐渐补全;
优点:性能高,放入缓存的数据量通常很小;
高可靠性,使用缓存不当,容易产生脏数据(缓存未更新,与实时数据不符),该方法可以提高数据更新率,防止脏数据。
缺点:第一次无法使用;
缓存数据健全过程慢;
2. 缓存数据的有效性
缓存的数据需要进行更新,从而保证数据的有效性。通常来说有两个步骤:① 删除旧数据; ② 补充更新
① 删除旧数据的前提是数据发生了变更,如modify、delete等操作。此时需要从缓存中将旧数据更新(含删除)。
针对多工程的数据共享有两种方案:
1)使用消息的方式,通知其他共享服务器更新缓存(如MQ消息服务);
2)使用缓存服务器,统一存放缓存(jcs提供相关功能);
② 补充更新的方案可以结合上面提到的缓存的数据从哪来,使用提前加载、基本缓存等方式,可以快速实现数据的更新,保证数据的完整。
补充一句话:没有完美的解决方案,只有针对不同情况产生的最优方案!
分享到:
相关推荐
Java Caching System (JCS) 是一个开源的缓存解决方案,它主要用于提高应用程序的性能,尤其是在处理大量数据库查询时。JCS通过将常用数据存储在内存中,避免了频繁访问数据库,从而减轻了数据库的负载。在【描述】...
JCS是Apache软件基金会下的一个项目,其核心设计目标是为Java应用程序提供高效的数据缓存服务,以减少对数据库的访问,从而降低系统的负载。 JCS 1.3.jar是JCS的一个特定版本,包含了该缓存系统的全部类和方法,...
JCS实例提供了`put`和`get`方法,分别用于存储和检索数据。 通过JCS,你可以实现跨JVM的分布式缓存,这意味着多个服务器可以共享同一份缓存数据,进一步提高系统的可扩展性和性能。同时,JCS还支持其他的辅助缓存,...
JCS是一个开源的内存缓存系统,用于提高应用程序的性能和响应速度,它通过将数据存储在内存中,避免了频繁的数据库访问。这三份jar包可能是实现JCS功能的关键库。 1. **jcs-1.3.zip**:这是JCS的主要库文件,包含了...
首先,Ehcache是一个广泛使用的开源Java缓存解决方案,它提供了内存和磁盘存储的两级缓存机制,能够有效地减少对数据库的访问,提高系统响应速度。Ehcache支持多线程环境,具有丰富的API和配置选项,使得开发者可以...
JCS支持C/S(客户端/服务器)模式,这种模式是软件架构中常见的一种设计,它将用户界面与数据处理分离,使得系统可以更灵活地进行扩展和维护。 在JCS中,客户端负责与服务器通信,请求数据或存储数据到缓存中。...
它通过存储经常访问的数据来减少对主存储器或网络的访问,从而大大提高应用的响应速度。本文将深入探讨四种知名的缓存解决方案:ShiftOne Cache、SwarmCache、EHCache以及JCS(Java Caching System),并分析它们的...
- 在处理大规模数据时,直接访问数据库可能导致响应时间过长,影响用户体验。 - 引入缓存技术可以在一定程度上解决这一问题,通过在服务器或客户端存储数据的副本,减少对数据库的频繁访问,从而加快数据的读取...
随着数据量的增长,引入了Hadoop计算平台(UHP)和Spark计算框架,它们能够高效地处理和分析海量数据,支持实时和批处理任务。流式计算平台如CEP(基于Storm)用于实时数据处理,提供快速响应能力。JBus数据同步和...
相反,主数据(Master Data)是指数据量不随时间线性增长或增长缓慢的数据,如固定的配置信息。主数据缓存通常包含所有数据,并且更新策略是按类别一次性更新全部数据,而不是逐个更新。主数据缓存不需要清除长时间...
2. **数据中心平面** - 存储和处理大量教育数据,包括各类业务系统,如学籍系统、电子校务管理系统等。 3. **业务平面** - 提供各类教学应用,如在线课堂、数字学校、视频点播等,满足不同用户的个性化需求。 4. **...
- **可扩展性**:支持水平扩展,随着数据量的增长可以轻松添加更多节点。 - **易于集成**:提供了简单的API,方便与其他Java应用程序集成。 #### 十、总结 综上所述,Java中存在着多种不同的缓存机制和技术,每种...
JCS1200 控制系统提供了强大的控制平面管理能力,支持多CPU和多核服务器级别的计算环境,极大地增强了对网络的管理和控制能力。 ##### 3. 可扩展性 T系列路由器具有出色的可扩展性,可以轻松地通过增加更多的路由器...
Java缓存技术是提高应用程序性能的关键手段,尤其是在处理大量数据或者频繁访问相同数据的场景下。本文将深入探讨几个常见的Java缓存框架及其特点,帮助开发者理解如何在项目开发中合理利用缓存。 首先,JBossCache...
Java 缓存机制是软件开发中提升应用性能的关键技术,特别是在处理大数据量或者频繁读取的数据时。本文将深入探讨几种常见的Java缓存机制的实现方法,包括OSCache、Java Caching System (JCS)、EHCache、JCache、...
- **结果分析**:通过对实验数据的分析,验证改进算法在计算磁滞和涡流损耗方面的优越性。 #### 主要交流电阻计算方法 ##### 1.1 Morgan公式 - **集肤效应计算**:通过公式(1)至(5),考虑了电流频率、导体厚度等...
Java高速缓存系统(JavaCachingSystem,JCS)是分布式缓存系统的一个具体实现,它提供了多种缓存处理方法,包括内存域保存、磁盘索引保存和远程保存。这些方法使得缓存数据的管理变得更加灵活和高效。JCS通过配置...
JCS是一个高度可配置的、分布式的缓存解决方案,它可以极大地提高应用的性能,减少对数据库的直接访问。通过将频繁访问的数据存储在内存中,JCS能够显著减少I/O延迟,从而提升整体应用的响应速度。在Speedframework ...
接着,文档提及了“BerkleyDB”,这是一个嵌入式的Java数据库,广泛用于轻量级的数据存储解决方案。它支持多种数据结构和存储方式,适合于本地缓存的实现。 文中还涉及到了分布式缓存的概念,包括“memcached”、...