SSM中集成memcache缓存

来源:互联网 发布:Mac大括号怎么打 编辑:程序博客网 时间:2024/06/05 16:26

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:11211memcache.initConn=20memcache.minConn=10memcache.maxConn=50memcache.maintSleep=3000memcache.nagle=falsememcache.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;@Controllerpublic 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即可在控制台看到结果。

原创粉丝点击