1.首先安装memcache服务
2.在项目中加入jar包:commons-pool-1.5.6.jar、java_memcached-release_2.6.6.jar、slf4j-api-1.6.1.jar、slf4j-simple-1.6.1.jar
3.在web.xml中,配置如下代码,这样会自动加载在classpath下的以名字以spring开头的xml文件:
contextConfigLocation
classpath:spring*.xml
4.在classpath路径下新建一个spring-memcached.xml文件:
classpath:config.properties
classpath:memcached.properties
memCachedPool
${memcache.server}
${memcache.initConn}
${memcache.minConn}
${memcache.maxConn}
${memcache.maintSleep}
${memcache.nagle}
${memcache.socketTO}
memCachedPool
5.在classpath路径下建立一个memcached.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
6.在controller中建立测试代码:
package com.fastboat.fastfans.controller;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.danga.MemCached.MemCachedClient;
@Controller
public class TestController {
@Autowired
private MemCachedClient memCachedClient;
@RequestMapping("/memcached")
public void setMemcachedServer(){
String mobile = "13815260603";
// 预防短信轰炸
Integer sendTime = (Integer)memCachedClient.get("mobileCode_" + mobile);
if(sendTime == null){
boolean target = memCachedClient.add("mobileCode_" + mobile, 0, new Date(System.currentTimeMillis()+10000));
sendTime = 0;
System.out.println("memcached 加载是否成功:"+target);
}
if(sendTime < 3 ){
sendTime++;
memCachedClient.replace("mobileCode_" + mobile, sendTime, new Date(System.currentTimeMillis()+10000));
}else{
System.out.println("次数过多");
}
Integer result =(Integer)memCachedClient.get("mobileCode_" + mobile);
System.out.println("memcached 获取的结果:"+result);
}
}
在浏览器中输入:http://localhost/项目名/memcached即可在控制台看到结果。