spring中整合memcached,以及创建memcache的put和get方法:

1:在项目中导入memcache相关的jar包

2:memcache在spring.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.xsd">
<!-- XMemcachedClientFactoryBean工厂配置-->
<bean id="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
<property name="servers" value="${memcache.servers}"/>
<property name="weights" value="${memcache.servers.weight}"/>
<property name="sessionLocator">
<bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"/>
</property>
<property name="transcoder">
<bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder"/>
</property>
<property name="bufferAllocator">
<bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"/>
</property>
</bean>
<!--自己封装的api类-->
<bean class="com.floor.shop.map.MemcachedAccess">
<property name="memcachedClient" ref="memcachedClient"/>
</bean>
</beans>

3:memcache在db.properties中的配置:

4:在spring的主配置文件中引入memcache的相关配置:

5:自己封装好的memcache方法(get(),   put(),  flushAll() )

 package com.floor.shop.map;

 import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.exception.MemcachedException; import java.util.concurrent.TimeoutException; public class MemcachedAccess {
private MemcachedClient memcachedClient;
/*
* 将memcachedClient交给spring管理
* (就需提供下面的get和set方法)
*/
public MemcachedClient getMemcachedClient() {
return memcachedClient;
} public void setMemcachedClient(MemcachedClient memcachedClient) {
this.memcachedClient = memcachedClient;
} /*
* memcache基于HashMap所以通过key,value的形式放值和取值。
* memcachedClient提供了add方法进行放值,add方法需要传递三个参数String var1, int var2, Object var3
* 分别表示:var1:key; var2:缓存的时间; var3:key对应的值
* 对外提供put方法往memcache里面放值:
*/
public boolean put(String key, Integer time, String value) {
try {
boolean add = memcachedClient.add(key, time, value);
return add;
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
return false;
} /*
*如果把时间写成死的数据:1天,就不需要传时间进来
* memcache的缓存时间是以秒为单位,默认缓存好像是一个月。
*/
public boolean put(String key , String value) {
try {
boolean add = memcachedClient.add(key, 1*24*60, value);
return add;
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
return false;
} /*
* 对外提供取值的get方法
*/
public String get(String key){
try {
String value = (String)memcachedClient.get(key);
return value;
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
return null;
} //对外提供清除所有缓存的方法:
public void flushAll(){
try {
memcachedClient.flushAll();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (MemcachedException e) {
e.printStackTrace();
}
} }

最新文章

  1. MVVM大比拼小结
  2. GTC China 2016观感
  3. img list
  4. 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
  5. 国产达梦数据库的结合Enterprise Library的应用开发
  6. windows系统下ftp上传下载和一些常用命令
  7. AWS S3 API实现文件上传下载
  8. load-on-startup
  9. python常见的模块
  10. dplyr 数据操作 常用函数(5)
  11. Android --&gt; 常见控件
  12. Java中方法的重载和重置(覆盖)的区别
  13. python函数,模块及eclipse使用
  14. 第三方页面嵌入到web项目的方案 之 使用iframe嵌入
  15. 老男孩python学习自修第十天【三元表达式与lambda表达式】
  16. PHP人工智能库
  17. C/S 开发框架 ----- 广州本地
  18. nodejs+mysql入门实例(增)
  19. RESTful 和RPC
  20. BI 可视化

热门文章

  1. MT【279】分母为根式的两个函数
  2. LOJ #2142. 「SHOI2017」相逢是问候(欧拉函数 + 线段树)
  3. flowable6.4.1+springboot使用dmn
  4. JVM垃圾收集(Java Garbage Collection / Java GC)
  5. 使用jvisualVm监控本地和远程的jvm
  6. C/C++ 控制台窗口暂停
  7. Spring 整合 Hibernate 时启用二级缓存实例详解
  8. 洛谷P4070 生成魔咒
  9. vue2.0获取自定义属性的值
  10. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,nloglogutil