Spring集成Memcache实例

一、Memcache安装
下载地址:https://github.com/memcached/memcached/releases
官方wiki:https://github.com/memcached/memcached/wiki

启动参数:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

二、pom文件

1 <!-- memcache -->
2 <dependency>
3     <groupId>com.whalin</groupId>
4     <artifactId>Memcached-Java-Client</artifactId>
5     <version>3.0.2</version>
6 </dependency>

三、配置文件

memcache.properties 文件

 1 #设置服务器地址.该端口号默认为11211
 2 memcached.server=192.168.208.131:11211
 3 #容错
 4 memcached.failOver=true
 5 #设置初始连接数
 6 memcached.initConn=20
 7 #设置最小连接数
 8 memcached.minConn=10
 9 #设置最大连接数
10 memcached.maxConn=250
11 #设置连接池维护线程的睡眠时间
12 memcached.maintSleep=3000
13 #设置是否使用Nagle算法(Socket的参数),如果是true在写数据时不缓冲,立即发送出去
14 memcached.nagle=false
15 #设置socket的读取等待超时时间
16 memcached.socketTO=3000
17 #设置连接心跳监测开关
18 memcached.aliveCheck=true

memcache.xml 文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans
 6     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 7     http://www.springframework.org/schema/context
 8     http://www.springframework.org/schema/context/spring-context-2.5.xsd
 9     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
10     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
11
12     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
13         <property name="locations">
14             <list>
15                 <value>classpath:memcache.properties</value>
16             </list>
17         </property>
18     </bean>
19     <!-- Memcached配置 -->
20     <bean id="memcachedPool" class="com.whalin.MemCached.SockIOPool"
21         factory-method="getInstance" init-method="initialize" destroy-method="shutDown">
22         <constructor-arg>
23              <value>memCachedPool</value>
24         </constructor-arg>
25         <property name="servers">
26             <list>
27                 <value>${memcached.server}</value>
28             </list>
29         </property>
30         <property name="initConn">
31             <value>${memcached.initConn}</value>
32         </property>
33         <property name="minConn">
34             <value>${memcached.minConn}</value>
35         </property>
36         <property name="maxConn">
37             <value>${memcached.maxConn}</value>
38         </property>
39         <property name="maintSleep">
40             <value>${memcached.maintSleep}</value>
41         </property>
42         <property name="nagle">
43             <value>${memcached.nagle}</value>
44         </property>
45         <property name="socketTO">
46             <value>${memcached.socketTO}</value>
47         </property>
48     </bean>
49
50     <bean id="memCachedClient" class="com.whalin.MemCached.MemCachedClient">
51         <constructor-arg>
52             <value>memCachedPool</value>
53         </constructor-arg>
54     </bean>
55 </beans>
SockIOPool、MemCachedClient构造器参数poolName需要保持一直,否则会报 attempting to get SockIO from uninitialized pool!

四、测试用例
 1 /**
 2  * Mecached测试类
 3  *
 4  */
 5 @RunWith(SpringJUnit4ClassRunner.class)
 6 @ContextConfiguration(locations = "classpath:application.xml")
 7 public class MemcacheTest {
 8
 9   @Autowired
10   private MemCachedClient memCachedClient;
11
12   @Test
13   public void memCachedGetTest() {
14     memCachedClient.set("hello", "123", new Date(System.currentTimeMillis() + 10000L));
15
16     System.out.println("hello: " + memCachedClient.get("hello"));
17
18     try {
19       Thread.sleep(11000);
20     } catch (Exception e) {}
21     Assert.assertNull(memCachedClient.get("hello"));
22
23   }
24 }
 
时间: 2024-10-26 00:35:11

Spring集成Memcache实例的相关文章

Hessian入门(包括与Spring集成)

A.纯Hessian接口开发步骤 Hessian-JAVA服务器端必须具备以下几点: * 1.包含Hessian的jar包(hessian-4.0.37.jar) * 2.设计一个接口,用来给客户端调用(IHessian.java) * 3.实现该接口的功能(IHessianImpl.java) * 4.配置web.xml,配好相应的Servlet(web.xml) * 5.对象必须实现Serializable接口(Foo.java) Hessian-JAVA服务端代码预览图: 1.包含Hess

Java Persistence with MyBatis 3(中文版) 第五章 与Spring集成

MyBatis-Spring是MyBatis框架的子模块,用来提供与当前流行的依赖注入框架Spring的无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向切面编程(Aspect Oriented Programming,AOP)的Java框架,鼓励使用基于POJO的编程模型.另外,Spring提供了声明式和编程式的事务管理能力,可以很大程度上简化应用程序的数据访问层(data access layer)的实现.在本章中,我们将看到在基于Spring的

Activiti工作流学习(三)Activiti工作流与spring集成

一.前言 前面Activiti工作流的学习,说明了Activiti的基本应用,在我们开发中可以根据实际的业务参考Activiti的API去更好的理解以及巩固.我们实际的开发中我们基本上都使用spring框架进行开发,现在来说明一下Activiti工作流与spring集成,Activiti工作流与spring集成还算比较简单,可以参考Activiti的API来进行整合. 二.Activiti常用的表 ---------------------------------------------部署对象

Spring集成MyBatis框架

Java在写数据库查询时,我接触过四种方式: 1.纯Java代码,引用对应的数据库驱动包,自己写连接与释放逻辑(可以用连接池) 这种模式实际上性能是非常不错的,但是使用起来并不是非常方便:一是要手工为Connection做获取与释放,大量的冗余代码也容易出错:另一个是,复杂的SQL用字符串写起来简直不可维护(换行.可视长度.参数都是问题). 2.使用Spring JdbcTemplate 这个其实还是挺不错的,配置比较简单,功能丰富上比手工管理Connection要舒服多了,而且代码也比较简洁.

Spring集成MongoDB及操作

1.Spring集成MongoDB的集成配置 若使用Maven项目,则添加包依赖. <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.0.RELEASE</version> </dependency> 在Spring配置文件中对Mon

Quartz与Spring集成——启动调度器

前言 在<Quartz与Spring集成--创建调度器>一文中介绍了调度器的创建过程,本文将分析其启动过程.熟悉Spring原理的人都知道AbstractApplicationContext的refresh方法的重要性,在refresh方法中调用了finishRefresh方法,最后会调用到SchedulerFactoryBean的start方法,其调用栈如图1所示. 图1 SchedulerFactoryBean的start方法的调用栈 根据图1的内容,我们知道spring容器初始化完毕的最

MyBitis(iBitis)系列随笔之六:mybitis与spring集成

目前Spring官方还没有出整合Mybatis的特性,但是mybitis比较给力,开发了一个mybatis-spring插件,达到与Spring的完美整合目的. 在与Spring集成前,一方面我们需要下载Spring的所需的jar文件,我是刚才Spring官方网站上下载的最新的spring-framework-3.2.2.RELEASE-dist.zip压缩文件,里面包含了Spring所有jar文件以及文档:另一方面我们需要从mybitis的官方网站上下载mybatis-spring插件,我是下

Spring集成ActiveMQ配置 --转

转自:http://suhuanzheng7784877.iteye.com/blog/969865 集成环境 Spring采用2.5.6版本,ActiveMQ使用的是5.4.2,从apache站点可以下载.本文是将Spring集成ActiveMQ来发送和接收JMS消息. 集成步骤 将下载的ActiveMQ解压缩后文件夹如下 activemq-all-5.4.2.jar是activemq的所有的类jar包.lib下面是模块分解后的jar包.将lib下面的 Java代码 /lib/activati

Spring aop 小实例demo

Hadoop从2.4.0版本开始支持hdfs的ACL,在CDH5.0当中也集成了该特性,下面对其进行一些测试: unnamed user (file owner) 文件的拥有者 unnamed group (file group) 文件的所属组 named user 除了文件的拥有者和拥有组之外,的其它用户 named group 除了文件的拥有者和拥有组之外,的其它用户 mask  权限掩码,用于过滤named user和named group的权限 一.启用ACL: <property>