1、memCache.properties:
memcache=92.0.0.0\:56666 time=7200
package com.common.common; import java.io.IOException; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import com.cdoframework.cdolib.data.cdo.CDO; import net.spy.memcached.MemcachedClient; /** * cache的失效时间,0或者负数为永久有效 * 如果超过60*60*24*30为从1970年以来的时间数,否则为从现在起的时间数 * @author Administrator * */ public class CacheUtil { public static int DEFAULT_TIMEOUT = 1; public static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS; private static MemcachedClient memCachedClient; static{ try { //memCachedClient = new MemcachedClient(); String hosts = ProPertiesUtil.getValue("/memCache.properties", "memcache"); String[] servers = hosts.split(";"); List<InetSocketAddress> lsinetSocketAddress = new ArrayList<InetSocketAddress>(); for(int i=0;i<servers.length;i++){ String[] hp = servers[i].split(":"); lsinetSocketAddress.add(new InetSocketAddress(hp[0],Integer.parseInt(hp[1]))); } memCachedClient = new MemcachedClient(lsinetSocketAddress); } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 覆盖此key值 * @param key * @param object * @param time * @return */ public static boolean put(String key,Object object,int time){ Future<Boolean> f = memCachedClient.set(key, time, object); return getBooleanValue(f); } /** * 如果key不存在,存进去 true * 如果存在,false * @param key * @param object * @param time * @return */ public static boolean putNotExist(String key,Object object,int time){ Future<Boolean> f = memCachedClient.add(key, time, object); return getBooleanValue(f); } /** * 获得 * @param key * @return */ public static Object get(String key){ return memCachedClient.get(key); } /** * 删除 * @param key * @return */ public static boolean delete(String key) { Future<Boolean> f = memCachedClient.delete(key); return getBooleanValue(f); } /** * 清除cache * @return */ public boolean flush() { Future<Boolean> f = memCachedClient.flush(); return getBooleanValue(f); } private static boolean getBooleanValue(Future<Boolean> f) { try { Boolean bool = f.get(DEFAULT_TIMEOUT,DEFAULT_TIMEUNIT); return bool.booleanValue(); } catch (Exception e) { f.cancel(false); return false; } } public static void main(String[] args) { System.out.println(CacheUtil.get("1more_award_5_33" )); } }
使用:
Object object = CacheUtil.get("global_access_token"); if(object == null){ access_token = HttpsUtil.getTokenFromWX(); CacheUtil.put("global_access_token", access_token, 7180); }
..
for(;;) { //全局锁 /** * 如果key不存在,存进去 true * 如果存在,false * @param key * @param object * @param time * @return */ Boolean lock = CacheUtil.putNotExist("detail_lock", "detail", 20); try{ if(lock){ ... } }catch(Exception ex){ logger.info("ex:" + ex.getMessage()+ ex.getStackTrace()); }finally{ CacheUtil.delete("detail_lock"); logger.info("用户[" + strUserName +"]释放锁.."); } break; } public static boolean putNotExist(String key,Object object,int time){ Future<Boolean> f = memCachedClient.add(key, time, object); return getBooleanValue(f); }
相关推荐
Python-memcached是Python语言的一个库,用于与Memcached缓存系统进行交互。Memcached是一种高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。Python-memcached库则...
安装php-memcached扩展 https://github.com/php-memcached-dev/php-memcached tar -zxvf ...-disable-memcached-sasl && make && make install
**hibernate-memcached-1.2.2.jar** 文件是这个扩展的核心库,其中包含了所有必要的类和接口,使得Hibernate能够识别并使用Memcached作为二级缓存。这个版本的hibernate-memcached已经过测试和优化,确保与1.2.2版本...
java-memcached-2.6.6.jar
总的来说,`python-memcached-latest.tar`提供的库是Python开发者在处理高并发、数据读取密集型应用时的一个强大工具。通过使用Memcached作为缓存层,可以显著提高数据读取速度,减轻数据库压力,提升整体系统性能。
因为 simple-spring-memcached 暂时和 MyBatis3 没办法直接整合(MyBatis3 不再需要 DAO 实现类),simple-spring-memcached annotation 在 interface 方法里不起作用。见我提交的 Bug。 ssm3-springcache-mybatis3-...
这个包是最高版本了,google code是1.22,但是这个版本是基础班的1.5版本.是github上源代码经过我打包出来的jar
8. **持久化**:虽然Memcached不支持数据持久化,但可以通过配合其他工具(如Redis或数据库)实现一定程度的持久化,Python-Memcached可以作为这些工具的缓存层。 9. **错误处理**:Python-Memcached库能够处理...
《Hibernate与Memcached整合详解——基于hibernate-memcached-1.1.0源码分析》 在当今的Web开发领域,数据持久化是一个必不可少的环节,而Hibernate作为Java领域广泛使用的对象关系映射(ORM)框架,极大地简化了...
"Nagios-Plugins-Memcached-0.02.tar.gz" 是一个针对Nagios的插件包,专门用于监控Memcached服务。这个压缩包包含了版本号为0.02的Nagios Memcached插件,用于检测Memcached服务器的状态,包括但不限于内存使用情况...
cas-client-support-distributed-memcached-3.2.0.jar
总的来说,Simple-Spring-Memcached是Java开发者在Spring环境中使用Memcached的强大工具,它通过注解简化了缓存操作,提升了开发效率。掌握SSM的使用,不仅可以优化应用性能,还能让我们更好地理解和运用缓存这一...
3. **配置SSM**:创建一个Spring配置类,定义Memcached的相关bean。这里我们将配置MemcachedTemplate和MemcachedCacheManager,以便于操作缓存。 ```java @Configuration public class MemcachedConfig { @...
在JAVA中使用Memcached进行行缓存是比较复杂的。Simple-Spring-Memcachd(SSM)企图通过实现几个基础的使用项来简化Memcached的使用。 该项在java-memcached客户端的基础上使用java5的注解和Sping/AspectJ的AOP,使...
hibernate-memcached-1.1.0.jar
PHP-Memcached-Demo项目,通过一个压缩包形式(php-memcached-demo.tar.gz)提供了一个实战示例,帮助开发者了解并掌握如何在PHP环境中使用Memcached作为缓存服务,以实现数据的快速访问和存储。本文将深入探讨这一...
资源分类:Python库 所属语言:Python 资源全名:python-binary-memcached-0.24.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
在本文中,我们将深入探讨Laravel开发中的一个关键组件——`laravel-memcached-plus`扩展。这个扩展针对Laravel5的内置Memcached缓存驱动进行了增强,为开发者提供了更全面的功能,包括持久连接、SASL认证以及自定义...
hibernate-memcached, 在Hibernate中,使用Memcached作为第二级分布式缓存的库 休眠 memcachedHibernate中使用Memcached作为第二级分布式缓存的库。基于优秀的spymemcached客户端包含对 Whalin ( danga ) memcached...