!:首先配置memcached.properties
#同时配置多台缓存服务器
memcached.cache.servers=192.138.11.165:11211,192.138.11.166:11211
#配置session的服务器
memcached.session.servers=192.138.11.168:11211,192.138.11.169:11211
2:在spring的配置文件中添加对memcache的支持
在spring的配置文件中添加,整合到spring中
<bean id="memcachedClient" class="net.spy.memcached.spring.MemcachedClientFactoryBean">
<property name="servers" value="$${memcached.cache.servers}"/>
<property name="protocol" value="BINARY"/>
<property name="transcoder">
<bean class="net.spy.memcached.transcoders.SerializingTranscoder">
<property name="compressionThreshold" value="1024"/>
</bean>
</property>
<property name="opTimeout" value="1000"/>
<property name="timeoutExceptionThreshold" value="1998"/>
<!-- <property name="hashAlg" value="KETAMA_HASH"/> -->
<property name="locatorType" value="CONSISTENT"/>
<property name="failureMode" value="Redistribute"/>
<property name="useNagleAlgorithm" value="false"/>
</bean>
<bean id="defaultCache" class="commons.cache.MemcachedCache">
<property name="memcachedClient" ref="memcachedClient" />
</bean>
3:封装了memcache的一些方法,方便操作
public interface Cache
{
public abstract void set(String s, Object obj, int i);
public abstract Object get(String s);
public abstract Map getMulti(List list);
public abstract Object[] getMulti(String as[]);
public abstract boolean exists(String s);
public abstract void delete(String s);
}
public class MemcachedCache
implements Cache
{
public MemcachedCache()
{
}
public void set(String key, Object value, int expiry)
{
if(StringUtils.isEmpty(key) || value == null)
{
return;
} else
{
memcachedClient.set(key, expiry * 60, value);
return;
}
}
public Object get(String key)
{
if(StringUtils.isEmpty(key))
return Boolean.valueOf(false);
Object o;
try
{
o = memcachedClient.get(key);
}
catch(OperationTimeoutException e)
{
o = memcachedClient.get(key);
}
return o;
}
public Map getMulti(List keys)
{
if(keys == null || keys.size() == 0)
{
return new HashMap(0);
} else
{
String strKeys[] = new String[keys.size()];
strKeys = (String[])keys.toArray(strKeys);
return memcachedClient.getBulk(strKeys);
}
}
public Object[] getMulti(String keys[])
{
if(keys == null || keys.length == 0)
{
return new Object[0];
} else
{
Map map = memcachedClient.getBulk(keys);
return map.values().toArray();
}
}
public void delete(String key)
{
if(StringUtils.isEmpty(key))
{
return;
} else
{
memcachedClient.delete(key);
return;
}
}
public boolean exists(String key)
{
if(StringUtils.isEmpty(key))
return false;
else
return memcachedClient.get(key) != null;
}
public void setMemcachedClient(MemcachedClient memcachedClient)
{
this.memcachedClient = memcachedClient;
}
private MemcachedClient memcachedClient;
}
4:在项目运用memcache
配置好memacache的环境了,就可以在项目中应用了
public class TestMemcacheService {
private MemcachedCache defaultCache;
private final static String KEY = "modul_methodname";
//需要spring注入上面配置好的bean的ID为defaultCache的bean
public void setDefaultCache(MemcachedCache defaultCache) {
this.defaultCache = defaultCache;
}
String sql = null;
//首先从缓存中取数据,如果缓存中没有,说明数据过期了,这时候可以去数据库查询新的数据,再添加到缓存中,
//这样可以很大程度上提高了后台响应时间。
if (null != defaultCache.get(KEY)) {
return (List<Item>) defaultCache.get(KEY);
}
sql = "select * " + " from test order by match_date desc limit 50 ";
executeQuery(sql, 1);
....
defaultCache.set(KEY, list, 15);
return list;
}
分享到:
相关推荐
spring整合memcache,测试缓存数据库的增删改查。
spring与memcache的开发配置!很详细
本人亲自搭建的spring和memcache缓存的项目,项目中说明也很详细,用的是oracle数据库。要是下载着使用的是其他数据库相信你也能快速改用,也可以在service层直接返回数据。目的在于怎么使用memcache。使用之前麻烦...
memcache的客户端,用maven构建,里有用hibernate-memcached与hibernate,spring3.0进行配置,也有与spring3.0单独配置。
如何基于Spring进行配置memcache及开发使用
包含最简单的memcache的使用,测试类MemCached.java; 在此基础上增加了memcahce和spring的整合,顺便使用了ibati,测试类SpringMemcacheTest.java 代码简洁,适合研究,参考
Spring整合memcached,基于Spring Cache注解!
spring memcache mybatis 从网上下载的 能跑起来 可以试一下
springmvc框架配置Memcache缓存示例,使用者需要自己修改db.properties中的memcache缓存服务地址,修改正确地址后可直接运行
memcache 整合Mysql 提高查询速度!
完整的Spring整合memcached项目,maven工程,下载即可用
memcache软件和+教程memcache软件和+教程
tomcat整合nginx负载均衡+memcache共享session全部程序包
介绍:memcache缓存的一个项目。只是简单的增删盖查。 使用前,应该先安装memcache。如果是window上就不需要安装...这里又加入了很多spring的jar包,是应为TestSpringMemcache.java中把memcache整合到spring中。
Spring Memcache 示例一个开箱即用的小示例,用于演示在 Spring MVC 驱动的 REST API 上使用 Spring 的@Cache注释。使用的库以下是演示中使用的最重要库的列表: 图书馆版本评论弹簧框架4.1.2. 发布弹簧芯弹簧数据-...
NULL 博文链接:https://younglibin.iteye.com/blog/2157666
memcache图形监控工具phpmemcache,尽是一个PHP文件就可以实现对memcache的监控。 使用方法:本地测试监控机安装Apache或者下载XAMPP(Apache+MySQL+PHP+PERL),安装后把memcachephp.zip中的memcache.php文件放到...
windows下memcache安装包 附带php扩展包
memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问。
最新windows的memcache模块下载 这个模块是平和php5.3的,在我的windowsxp php5.3.5上安装成功 里面有两个php库,一个php_memcache.dll.vc6 和一个php_memcache.dll.vc9 另外一个windows的memcache.exe文件,都是网上...