`

Spring与memcached整合

 
阅读更多
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与Memcached整合,以及如何使用Spring Cache注解实现缓存功能。 首先,我们需要理解Spring Cache的基本概念。Spring Cache是一个抽象层,它允许我们在不依赖特定缓存实现的情况下使用...

    spring整合memcached

    这篇文章将详细介绍如何将Spring与Memcached整合,帮助新手入门这一技术栈。 首先,我们需要理解Spring整合Memcached的目的。在高并发的Web应用中,缓存可以显著提升性能,减少数据库的负载。Memcached因其简单高效...

    (SSM框架)memcached整合Spring基于Cache注解.

    虽然MyBatis本身不支持缓存,但可以通过Spring的缓存抽象层与Memcached进行整合。在MyBatis的Mapper接口方法上使用Spring的Cache注解,实现查询结果的缓存。 8. **性能优化**: 使用Memcached需要注意缓存穿透、...

    SSM与memcached整合项目Spring Cache

    不过,具体这些文件如何与SSM(Spring、SpringMVC、MyBatis)和memcached整合的细节,需要参考实际的项目代码。 通过这样的整合,我们可以充分利用Spring Cache的便捷性和memcached的高性能,为应用程序构建一个...

    SSM与memcached整合项目

    SSM与Memcached整合是一个常见的Java Web开发技术组合,用于提升应用的性能和可扩展性。SSM是指Spring、Spring MVC和MyBatis三个框架的集成,而Memcached则是一种高性能、分布式内存对象缓存系统。这个项目是将这三...

    springMVC+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.jar"表明这是一个整合了Spring框架与Memcached缓存服务的Java应用程序。Memcached是一种广泛使用的分布式内存对象缓存系统,它能够通过减轻数据库负载来提高Web应用的性能。Spring框架是...

    java Memcached Spring整合代码实例

    java Memcached客户端代码,整合到Spring,提供Util工具类 代码片段: public class MemcachedUtils { private static boolean setExp(String key, Object value, Date expire) { boolean flag = false; try { ...

    SSM框架Spring memcached整合基于注解形式

    在这个项目中,我们将探讨如何将Spring与memcached缓存系统进行整合,以提高应用程序的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,用于临时存储中间结果或频繁访问的数据,从而减轻数据库的...

    spring-mybatis-memcached.zip_Memcached java_annotation_mybatis_m

    ssm3-mybatis2-memcached 使用了 simple-...ssm3-springcache-mybatis3-memcached 通过 Spring Cache(Spring 3.1+) 实现 simple-spring-memcached 和 MyBatis3 整合。 simple-spring-memcached 使用了 JSON 序列化。

    simple-spring-memcached统一缓存的使用实例[整理].pdf

    Simple-Spring-Memcached(SSM)是一个流行的缓存框架,它整合了Spring框架与Memcached,提供了一种统一的方式来处理缓存操作。本文将详细介绍如何在实际应用中使用SSM进行统一缓存管理,并分享在规划和配置过程中...

    hibernate4+spring4+memcached 工程

    从【压缩包子文件的文件名称列表】"hibernate-memcached-master"来看,这可能是项目的根目录,暗示着项目中可能包含了一套完整的配置和实现,用于将Hibernate与Memcached整合。具体可能包括以下部分: 1. **配置...

    使用spring aop对web 应用数据进行memcached缓存

    3. **整合Spring AOP与Memcached**: - 在Spring应用中,可以创建一个自定义的切面来处理数据缓存。例如,当一个服务方法被调用时,首先检查请求的数据是否已经在Memcached中,如果存在则直接返回,否则从数据库...

    SSM整合memcached缓存

    现在我们来看看如何将Memcached整合到SSM中: 1. 安装和配置Memcached:首先,你需要在服务器上安装和运行Memcached服务。这通常涉及到下载Memcached,配置启动参数,并通过命令行启动服务。 2. 添加依赖:在SSM...

    SSM整合memcached

    SSM整合Memcached是将Spring、Spring MVC和MyBatis这三大Java Web开发框架与Memcached内存缓存系统相结合的过程,以提升应用的性能和响应速度。Memcached是一款高性能、分布式内存对象缓存系统,广泛用于减轻数据库...

    maven-springmvc-mybatis-memcached

    MyBatis-Spring整合后,可以利用Spring的事务管理功能,简化数据库操作。 4. Memcached:Memcached是一个基于键值对的缓存系统,适合存储小块的、临时的数据。在Web应用中,它可以缓存数据库查询结果,减少数据库...

    spring boot 实践学习案例,与其它组件整合

    spring boot 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、elasticsearch、security、shiro等 #### Spring Boot 版本 - 2.0.3.RELEASE #### 模块...

Global site tag (gtag.js) - Google Analytics