您的位置:首页 > 数据库 > Memcache

SSM中集成memcache缓存

2017-06-02 09:26 197 查看
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文件:

contextConfigLocationclasspath:spring*.xml


4.在classpath路径下新建一个spring-memcached.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
classpath:config.propertiesclasspath:memcached.propertiesmemCachedPool${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即可在控制台看到结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  memcache 缓存 SSM