本篇文章为原创,转载请说明出处
寻呼最基本的要求就是及时性,然而B/S架构的系统属于请求应答模式,所以服务器不能直接通知客户端后台的数据变化
一般我们为了解决这个问题就是要前端异步的轮循请求数据,但是这样随着客户端的增加对服务器的压力会随之增大,所以
我们可以取一个折中的办法,就是使用缓存。这样我们的服务器不会每次请求都去数据库中取而是在缓存中查询,这样每次回话
时间就会减少,响应的压力也会有所降低,但不会没有。
缓存的切入点:
1.用户登录时将该用户未读的寻呼加入缓存
2.用户退出时将该用户的寻呼缓存清除
3.其他人发寻呼时如果发送对象是在线用户,需要更新缓存
4.用户点击已阅寻呼时,需要更新缓存
5.寻呼回复,需要更新缓存
缓存采用ehcache+spring集成。如果想看详细配置过程介绍,请看此文章
这里就不详细介绍每个配置的含义了
首先创建ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmpdir/jcs" />
<defaultCache maxElementsInMemory="10000" overflowToDisk="true" eternal="false"
memoryStoreEvictionPolicy="LRU" maxElementsOnDisk="10000000" diskExpiryThreadIntervalSeconds="600"
timeToIdleSeconds="3600" timeToLiveSeconds="100000" diskPersistent="false" />
<cache name="callCache" overflowToDisk="false" eternal="true" diskPersistent="false" timeToLiveSeconds="3600" timeToIdleSeconds="3600" maxElementsInMemory="10000" memoryStoreEvictionPolicy="LRU" ></cache>
</ehcache>
第二步:配置spring-ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-lazy-init="true"
>
<description>EhCache配置文件</description>
<!-- EHCache 缓存配置 -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" />
</bean>
<!-- 网络寻呼缓存 -->
<bean id="callCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref local="cacheManager" />
</property>
<property name="cacheName">
<value>callCache</value>
</property>
</bean>
</beans>
经上面2步配置就完了
接下来编写接口ICallCacheService
public interface ICallCacheService {
public int getSizeOfUser(String userId);
public void putCallInCache(String userId);
public void removeCallFormCache(String userId);
public boolean isExist(Serializable key);
public List get(Serializable key);
public void remove(Serializable key);
public List get(Serializable key,int pageSize);
public void put(Serializable key,List<Serializable> value);
public void removeCall(Serializable key,String receiveId);
}
编写实现类
@Transactional
@Component("callCacheService")
public class CallCacheService implements ICallCacheService {
@Resource(name="callCache")
private Cache callCache;
@Autowired
@Qualifier("callReceiveService")
private ICallReceiveService callReceiveService;
具体怎么实现每一个方法就没贴代码了,不是很复杂
最后结合上面提到的缓存切入点
什么时候put进缓存,什么时候clear缓存
分享到:
相关推荐
本篇文章将详细探讨如何在Spring框架中集成并实现基于方法的缓存机制,利用Ehcache来优化数据访问。 首先,我们需要理解Spring的AOP概念,AOP允许我们定义横切关注点,如日志、事务管理或,正如在这个案例中,缓存...
### Spring Boot集成Ehcache实现缓存 #### 一、Ehcache简介 Ehcache是一个高效的纯Java进程内缓存框架,以其快速且轻便的特点而被广泛应用于各种应用场景中,尤其在Java EE和轻量级容器环境中更是受到青睐。...
在本文中,我们将深入探讨如何使用SpringBoot、MyBatis和Ehcache来实现缓存数据。Ehcache是一款高效且易于使用的Java内存缓存框架,对于提升应用程序性能,尤其是在处理大量数据时,能起到显著作用。虽然在分布式...
本篇将详细探讨如何使用Hibernate ORM框架结合EhCache实现数据缓存的处理,从而提高系统的响应速度。 Hibernate是一个流行的Java持久化框架,它提供了一种便捷的方式来映射对象关系模型(ORM)到关系数据库。然而,...
在本文中,我们将深入探讨如何使用Spring4框架与EhCache进行整合,以实现零配置的页面缓存功能。EhCache是一个广泛使用的开源Java缓存解决方案,它提供了高效的内存和磁盘缓存机制,有助于提升应用程序性能。通过...
### Spring Boot中使用EhCache实现缓存支持 #### 概述 在现代软件开发过程中,缓存技术已经成为提升系统性能的重要手段之一。通过减少对底层数据存储的频繁访问,缓存可以有效缓解数据库压力,加快应用响应速度。...
在本教程中,我们将深入探讨如何使用Spring Boot集成EHCache来实现高效的缓存机制。Spring Boot简化了配置过程,使得我们可以快速地将EHCache引入到我们的应用中,从而提高应用程序的性能,减少对数据库或其他资源的...
在本文中,我们将深入探讨Ehcache的功能实现以及如何与Spring框架进行集成,同时通过两个项目实例——`TestEhcacheSpring.zip`和`TestEhcache.zip`来具体说明。 ### Ehcache核心功能 1. **缓存管理**: Ehcache允许...
2、由于要实现Ehcache缓存页面,所以必须要添加“ehcache-web-2.0.4.jar” jar包,该jar包主要用于辅助Ehcache实现页面缓存 注意: 本web工程的发布不要使用Tomcat7,否则会出现如下异常: 2015-3-25 9:53:50 org....
### 配置EhCache二级缓存 #### 一、简介 EhCache是一个高性能、易于使用的开源缓存系统,最初由 Terracotta 组织开发。它支持多种缓存模型,包括本地缓存和分布式缓存。由于其简单易用且功能强大,EhCache 成为了 ...
本文将深入探讨如何结合Spring AOP与EhCache实现一个简单的缓存实例,以便优化Java应用的运行效率。 首先,让我们了解Spring AOP。Spring AOP是Spring框架的一部分,它允许我们在不修改业务代码的情况下,通过定义...
6. **分布式缓存(Distributed Caching)**:Ehcache可以通过网络在多台机器之间共享缓存数据,实现分布式缓存,提高系统的可扩展性。 7. **事件监听(Event Listeners)**:Ehcache支持添加监听器来监控缓存操作,例如...
在分布式环境中,Ehcache通过使用JGROUP来实现分布式缓存。JGROUP是一个用于构建可靠集群通信的库,可以提供组成员资格、故障检测、传输协议等多种功能,使得Ehcache能够在多个节点之间共享和同步缓存数据。Ehcache...
3. IDE集成:将ehcache.xsd导入到IDE(如IntelliJ IDEA、Eclipse等)中,可以实现代码提示和自动完成,提高开发效率,减少因配置错误导致的问题。 4. XML配置:ehcache.xml是Ehcache的配置文件,通过它来设定缓存的...
springboot+EHcache 实现文章浏览量的缓存和超时更新 springboot+EHcache 实现文章浏览量的缓存和超时更新是指通过springboot框架和EHcache缓存机制来实现文章浏览量的缓存和超时更新,以解决高访问量网站对数据库...
1.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的web-inf/lib目录下 2.将以下配置copy的ehcache.xml文件的ehcache标签中,注:上述链接中说的配置少写了个probe包名...
在缓存管理方面,Spring 提供了 Spring Cache抽象层,可以方便地集成各种缓存实现,如Ehcache、Hazelcast或Redis。 **Ehcache** 是一个广泛使用的Java缓存库,适合在内存中存储数据。它提供了一种快速访问最近使用...
内存缓存用于存储最近使用的数据,以实现快速访问;磁盘存储用于保存当内存满时的数据,保证数据不丢失;而缓存复制则是在分布式环境下,确保多节点间的数据一致性。 对于监控Ehcache,我们可以利用Ehcache提供的...
8. ** Terracotta 集群支持**:通过集成 Terracotta,Ehcache 可以实现跨服务器的缓存同步,为大型企业级应用提供解决方案。 9. **与MyBatis的整合**:MyBatis 是一个流行的SQL映射框架,Ehcache 可以作为其二级...