Spring与memcached整合 import
org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.danga.MemCached.MemCachedClient;
public class MClient {
public static void main(String[]args){
ApplicationContext ctx = new FileSystemXmlApplicationContext("src/applicationContext.xml");
// ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
MemCachedClient mc = (MemCachedClient) ctx.getBean("memcachedClient");
for(int i = 0 ; i < 10 ;i++){
mc.set("key "+i, "value "+i);
}
try{
Thread.sleep(50);
for(int i = 0 ; i<10 ; i++){
System.out.println("get"+i+" value "+mc.get("key "+i));
}
}catch(Exception e){
}
}
}
<bean id="memcachedPool" class="com.danga.MemCached.SockIOPool"
factory-method="getInstance" init-method="initialize" destroy-method="shutDown">
<constructor-arg value="vmarsMemcachedPool"/>
<property name="servers">
<list>
<value>127.0.0.1:11211</value>
</list>
</property>
<property name="initConn" value="20"/>
<property name="minConn" value="10"/>
<property name="maxConn" value="50"/>
<property name="maintSleep" value="30"/>
<property name="nagle" value="false"/>
<property name="socketTO" value="3000"/>
</bean>
<bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient">
<constructor-arg value="vmarsMemcachedPool"/>
<property name="compressEnable" value="true"/>
<property name="compressThreshold" value="4096"/>
</bean>
package com.xiu.common.cache.memcached.client;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemcachedClientFactory {
private static MemCachedClient memCachedClient;
private MemcachedClientFactory() {
}
static {
/*初始化SockIOPool,管理memcached的连接池*/
//String[] servers = { "10.0.0.67:11211","10.0.0.80:11311" };
String[] servers = { "10.0.0.80:11311" };
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setFailover(true);
pool.setInitConn(10);
pool.setMinConn(5);
pool.setMaxConn(2500);
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
//设置hash算法,使用CRC32兼容hash算法,查找cache服务器使用余数方法
pool.setHashingAlg(2);
pool.setAliveCheck(true);
pool.initialize();
/*建立MemcachedClient实例*/
memCachedClient = new MemCachedClient();
}
public static MemCachedClient getInstance() {
return memCachedClient;
}
}
package com.xiu.cache.memcached.client;
import java.util.Date;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.danga.MemCached.MemCachedClient;
public class MemcachedClientApp {
public static void main(String[] args) {
// 初始化应用程序上下文
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// Memcached 客户端
MemCachedClient client = (MemCachedClient) context.getBean("memcachedClient");
Person person = new Person();
person.setId("124");
person.setName("jack");
/* 将对象加入到memcached缓存 */
// 小于1000的值,除以1000以后都是0,即永不过期
boolean success = client.set("124", person, new Date(10000));// 十秒后过期
System.err.println(success);
// Thread.sleep(20000);
/* 从memcached缓存中按key值取对象 */
long start = System.currentTimeMillis();
Person person1 = (Person) client.get("124");
// String
// user=(String)client.get("sso_user:b6d67ebabc4f6566a21922cab59f165d");
long end = System.currentTimeMillis();
System.out.println("cost time is " + (end - start));
// memCachedClient.getMulti(keys)
// memCachedClient.getMultiArray(keys)
//清除服务器上所有数据
//client.flushAll();
//client.flushAll(servers);
/*
* if (user != null) {
*
* System.out.println(user); }
*/
if (person1 != null) {
System.out.println(person1.toString());
}
for (int i = 0; i < 10; i++) {
client.set("key " + i, "value " + i, new Date(10000));
}
try {
Thread.sleep(500);
client.flushAll();
for (int i = 0; i < 10; i++) {
System.out.println("get" + i + " value " + client.get("key " + i));
}
} catch (Exception e) {
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- the application context definition for the springapp DispatcherServlet -->
<!-- Memcached 连接池 -->
<bean id="memcachedPool" class="com.danga.MemCached.SockIOPool"
factory-method="getInstance" init-method="initialize" destroy-method="shutDown">
<constructor-arg>
<value>neeaMemcachedPool</value>
</constructor-arg>
<property name="servers">
<list>
<value>10.0.0.67:11211</value>
<!-- <value>10.0.0.80:11311</value> -->
</list>
</property>
<property name="initConn">
<value>20</value>
</property>
<!--多服务器负载均衡权重 -->
<!--
<property name="weights">
<list>
<value>5</value>
<value>5</value>
</list>
</property>
-->
<property name="minConn">
<value>100</value>
</property>
<property name="maxConn">
<value>250</value>
</property>
<property name="maintSleep">
<value>30</value>
</property>
<property name="nagle">
<value>false</value>
</property>
<property name="socketTO">
<value>3000</value>
</property>
</bean>
<!-- Memcached 客户端 -->
<bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient">
<constructor-arg>
<value>neeaMemcachedPool</value>
</constructor-arg>
</bean>
</beans>
分享到:
相关推荐
本文将深入探讨如何将Spring与Memcached整合,以及如何使用Spring Cache注解实现缓存功能。 首先,我们需要理解Spring Cache的基本概念。Spring Cache是一个抽象层,它允许我们在不依赖特定缓存实现的情况下使用...
这篇文章将详细介绍如何将Spring与Memcached整合,帮助新手入门这一技术栈。 首先,我们需要理解Spring整合Memcached的目的。在高并发的Web应用中,缓存可以显著提升性能,减少数据库的负载。Memcached因其简单高效...
虽然MyBatis本身不支持缓存,但可以通过Spring的缓存抽象层与Memcached进行整合。在MyBatis的Mapper接口方法上使用Spring的Cache注解,实现查询结果的缓存。 8. **性能优化**: 使用Memcached需要注意缓存穿透、...
不过,具体这些文件如何与SSM(Spring、SpringMVC、MyBatis)和memcached整合的细节,需要参考实际的项目代码。 通过这样的整合,我们可以充分利用Spring Cache的便捷性和memcached的高性能,为应用程序构建一个...
SSM与Memcached整合是一个常见的Java Web开发技术组合,用于提升应用的性能和可扩展性。SSM是指Spring、Spring MVC和MyBatis三个框架的集成,而Memcached则是一种高性能、分布式内存对象缓存系统。这个项目是将这三...
此工程为 springMVC+memcached整合 项目。 resources\config\memcached.xml为 memcached配置文件。test\cn\sky\tian\test\spring为Demo的路径。 (里面有个src\cn\sky\tian\test\controller路径是MengoDB的demo,也...
标题中的"spring+memcached.jar"表明这是一个整合了Spring框架与Memcached缓存服务的Java应用程序。Memcached是一种广泛使用的分布式内存对象缓存系统,它能够通过减轻数据库负载来提高Web应用的性能。Spring框架是...
java Memcached客户端代码,整合到Spring,提供Util工具类 代码片段: public class MemcachedUtils { private static boolean setExp(String key, Object value, Date expire) { boolean flag = false; try { ...
在这个项目中,我们将探讨如何将Spring与memcached缓存系统进行整合,以提高应用程序的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,用于临时存储中间结果或频繁访问的数据,从而减轻数据库的...
ssm3-mybatis2-memcached 使用了 simple-...ssm3-springcache-mybatis3-memcached 通过 Spring Cache(Spring 3.1+) 实现 simple-spring-memcached 和 MyBatis3 整合。 simple-spring-memcached 使用了 JSON 序列化。
Simple-Spring-Memcached(SSM)是一个流行的缓存框架,它整合了Spring框架与Memcached,提供了一种统一的方式来处理缓存操作。本文将详细介绍如何在实际应用中使用SSM进行统一缓存管理,并分享在规划和配置过程中...
从【压缩包子文件的文件名称列表】"hibernate-memcached-master"来看,这可能是项目的根目录,暗示着项目中可能包含了一套完整的配置和实现,用于将Hibernate与Memcached整合。具体可能包括以下部分: 1. **配置...
3. **整合Spring AOP与Memcached**: - 在Spring应用中,可以创建一个自定义的切面来处理数据缓存。例如,当一个服务方法被调用时,首先检查请求的数据是否已经在Memcached中,如果存在则直接返回,否则从数据库...
现在我们来看看如何将Memcached整合到SSM中: 1. 安装和配置Memcached:首先,你需要在服务器上安装和运行Memcached服务。这通常涉及到下载Memcached,配置启动参数,并通过命令行启动服务。 2. 添加依赖:在SSM...
SSM整合Memcached是将Spring、Spring MVC和MyBatis这三大Java Web开发框架与Memcached内存缓存系统相结合的过程,以提升应用的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,广泛用于减轻数据库...
MyBatis-Spring整合后,可以利用Spring的事务管理功能,简化数据库操作。 4. Memcached:Memcached是一个基于键值对的缓存系统,适合存储小块的、临时的数据。在Web应用中,它可以缓存数据库查询结果,减少数据库...
spring boot 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、elasticsearch、security、shiro等 #### Spring Boot 版本 - 2.0.3.RELEASE #### 模块...