初学memcache 2

上面成功建立了memcache,这里是与spring集成的实例:

废话不多说,上代码:

memcache.properties

memcache.server=127.0.0.1\:11211  
memcache.initConn=20  
memcache.minConn=10  
memcache.maxConn=50  
memcache.maintSleep=3000  
memcache.nagle=false  
memcache.socketTO=3000

spring-memcache.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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!-- 引入memcachePool配置文件 -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    	<property name="locations" value="classpath:/memcache.properties"/>
    </bean>
	
	
	<!-- 配置memcache连接池 -->
	<bean id="memcachedPool" class="com.danga.MemCached.SockIOPool"
		factory-method="getInstance" init-method="initialize" destroy-method="shutDown">
		<constructor-arg value="memcachedPool"></constructor-arg>
		<property name="servers" value="${memcache.server}"></property>
		<property name="initConn" value="${memcache.initConn}"></property>
		<property name="minConn" value="${memcache.minConn}"></property>
		<property name="maxConn" value="${memcache.maxConn}"></property>
		<property name="maintSleep" value="${memcache.maintSleep}"></property>
		<property name="nagle" value="${memcache.nagle}"></property>
		<property name="socketTO" value="${memcache.socketTO}"></property>
	</bean>


	<!-- 配置memcache客户端 -->
	<bean id="memCachedClient" class="com.danga.MemCached.MemCachedClient">
		<constructor-arg value="memcachedPool"></constructor-arg>
	</bean>

</beans>

MemCachedManager.java

import java.util.Date;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemCachedManager {
	// 创建全局的唯一实例
	private static MemCachedClient mcc = get();//= new MemCachedClient();
	protected static MemCachedManager memCachedManager = new MemCachedManager();
	
	private static MemCachedClient get(){
		ApplicationContext context = new ClassPathXmlApplicationContext("spring-memcache.xml");
		return (MemCachedClient) context.getBean("memCachedClient");
	}

	/**
	 * 保护型构造方法,不允许实例化!
	 * 
	 */
	protected MemCachedManager() {
	}

	/**
	 * 获取唯一实例.
	 * 
	 * @return
	 */
	public static MemCachedManager getInstance() {
		return memCachedManager;
	}
	
	public static MemCachedClient getInstance2() {
		return mcc;
	}

	/**
	 * 添加一个指定的值到缓存中.
	 * 
	 * @param key
	 * @param value
	 * @return
	 */
	public boolean add(String key, Object value) {
		return mcc.add(key, value);
	}
	
	public boolean set(String key, Object value) {
		return mcc.set(key, value);
	}

	public boolean add(String key, Object value, Date expiry) {
		return mcc.add(key, value, expiry);
	}

	public boolean replace(String key, Object value) {
		return mcc.replace(key, value);
	}

	public boolean replace(String key, Object value, Date expiry) {
		return mcc.replace(key, value, expiry);
	}

	/**
	 * 根据指定的关键字获取对象.
	 * 
	 * @param key
	 * @return
	 */
	public Object get(String key) {
		return mcc.get(key);
	}
	
	
	public void flush(){
		mcc.flushAll();
	}
}

实体:

import java.io.Serializable;

public class Bean implements Serializable {
	private static final long serialVersionUID = 1945562032261336919L;
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}


测试类:

import junit.framework.TestCase;

import org.junit.Test;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class TestMemcached extends TestCase {

	@Test
	public void testCache() {
		Bean tb = new Bean();
		MemCachedClient m=MemCachedManager.getInstance2();
		tb.setName("ee");
		System.out.println("-------"+m);
		boolean b = m.add("beans", tb);
		System.out.println(b);
		Bean tb1 = (Bean) m.get("beans");
		System.out.println(tb1);
		System.out.println(tb1.getName());
		System.out.println(m.keyExists("beans"));
		System.out.println(m.keyExists("s"));
		System.out.println("name=" + tb1.getName());
	}

}
测试结果:

-------com.danga.MemCached.MemCachedClient@592c17ce
false
com.ilindo.test.Bean@42701c57
ee
true
false
name=ee


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值