`
zhujiang520
  • 浏览: 148631 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java 使用 memcached 的简单例子 缓存

阅读更多
MemCached 安装日志

关键字: memcached
1、下载memcached-1.2.1.tar.gz和libevent-1.3b.tar.gz;
2、安装libevent
tar xvfz  libevent-1.3b.tar.gz
cd libevent-1.3b
./configure && make
make install
3、安装memcache
tar xvfz  memcached-1.2.1.tar.gz
cd  memcached-1.2.1
./configure
make && make install
4、将libevent安装的/usr/local/lib输出到引用库路径
# vi ~/.bash_profile
加入如下一行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
5、启动(安装后位置:/usr/local/bin/memcached)
memcached  -d  -m 128 -l 192.168.0.50 -p 11211 -u root
即以root用户,分配最大2GM内存启动memcache
memcached  -d  -m 128 -l 192.168.0.50 -p 11212 -u root
在另外一个端口11212启动另外一个memcache实例
 

* Created on 2006-7-24
 * 连接缓存服务器
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class MemCacheWorkBench {
	
	private static final String POOL_NAME = "danqoo"; 
	
	private static final String CACHE_SERVER = "211.155.224.112:11211";

	private static MemCachedClient client = null;
	
	private static boolean USE_MEMCACHE_FLAG = true;

	public static MemCachedClient getMemCachedClient() {
		if (USE_MEMCACHE_FLAG){
			if (client == null) {
				String[] serverlist = { CACHE_SERVER };
				SockIOPool pool = SockIOPool.getInstance(POOL_NAME);
				pool.setServers(serverlist);
				// 设置初始连接数、最小和最大连接数以及最大处理时间
	
				pool.setInitConn( 5 );       
		        pool.setMinConn( 5 );       
		        pool.setMaxConn( 250 );       
		        pool.setMaxIdle( 1000 * 60 * 30);		        
		        // 设置主线程的睡眠时间
		        pool.setMaintSleep( 30 ); 	
				// 设置TCP的参数,连接超时等
		        pool.setNagle( false );       
		        //连接建立后对超时的控制    
		        pool.setSocketTO( 3000 );    
		        //连接建立时对超时的控制    
		        pool.setSocketConnectTO( 0 );   
				pool.initialize();   
				client = new MemCachedClient();
				// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
				client.setCompressEnable(true);
				client.setCompressThreshold(4096);
				client.setPrimitiveAsString(true);
				client.setPoolName(POOL_NAME);
			}
			return client;
		}else{
			return null;
		}
	}
	
}


/*
 * Created on 2006-7-24
 * 单子模式实加载一个对象
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class MemCacheUtil {
	
	public static String indeKey = "danqoo.index";
	private static Integer OVER_TIME = 5*60*1000;
	private static Log logger = LogFactory.getLog(MemCacheUtil.class);
	private static MemCachedClient mc = MemCacheWorkBench.getMemCachedClient();

	
	public static Object get(String key) {
		if (mc != null && key != null && key.trim().length() > 0)
			return mc.get(key);
		else
			return null;
	}

	public static void set(String key, Object value) {
		if (mc != null && key != null && key.trim().length() > 0)
			mc.set(key, value,new Date(OVER_TIME));//过期时间设置默认
	}
	
	public static void set(String key, Object value,Date date) {
		if (mc != null && key != null && key.trim().length() > 0)
			mc.set(key, value,date);
	}

	public static void delete(String key) {
		if (mc != null && key != null && key.trim().length() > 0)
			mc.delete(key);
	}

	public static void clear() {
		if (mc != null){
			mc.flushAll();
		}	
	}
	
	public static String createKey(String id,Map map){
		StringBuffer sbuf = new StringBuffer();
		sbuf.append(id);
		for (Object key : map.keySet()) {			
			sbuf.append(".").append(key).append("=").append(map.get(key));
		}
		return  Utilities.encodePassword(sbuf.toString(), "md5");
	}
	
	public static String createKey(String id,String paraName,String value){
		StringBuffer sbuf = new StringBuffer();
		sbuf.append(id).append(".").append(paraName).append("=").append(value);
		return Utilities.encodePassword(sbuf.toString(), "md5");
	}
	
	public static String createKey(String id){		
		return Utilities.encodePassword(id.toString(), "md5");
	}
		
}


/** 
 * @Dao层运用缓存机制
 * @date:2008-9-17 
 * @time:上午09:42:03 
 */
public class AdvPicDaoImpl extends SqlMapClientDaoSupport implements IAdvPicDao{
	
	public AdvPicBean getAdvPic(int id) {
		
		return (AdvPicBean)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvPic",id);
	}

	public void setAdvPic(AdvPicBean bean) {
		this.getSqlMapClientTemplate().insert("advpic.setAdvPic",bean);
		
	}		
	 public List<AdvPicBean> getAdvice(int begin,int advType,int advFileType)
	 {
		 Map map=new HashMap();
		 map.put("begin", begin);
		 map.put("adType", advType);
		 map.put("adFileType", advFileType);
		 String key = MemCacheUtil.createKey("advpic.getAdvice",map);
		 List<AdvPicBean> list = (List<AdvPicBean>) MemCacheUtil.get(key);
		 if (list == null ){
			 list =  this.getSqlMapClientTemplate().queryForList("advpic.getAdvice",map);
			 MemCacheUtil.set(key, list);
		 }
		 return list;
	 }


	public List<FLinkForm> findFLinkList(Integer num) {
//		return this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);
		String key = MemCacheUtil.createKey("advpic.findFLinkList","num",Integer.toBinaryString(num));
		Object obj = MemCacheUtil.get(key);
		if (obj !=null){
			return (List)obj;
		}else{
			List value = this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);
			MemCacheUtil.set(key, value);
			return value;
		}
	}

	public FLinkForm getAdvertiseCodeById(String id) {
		return (FLinkForm)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvertiseCodeById", id);
	}

	public WordAdBean getWordAdByKey(String key) {
		return (WordAdBean)this.getSqlMapClientTemplate().queryForObject("advpic.getWordAdByKey", key);
	}			
}
分享到:
评论

相关推荐

    java使用memcached的实例

    接下来,我们来看一个简单的Java Action类,名为`MemcachedAction.java`,展示了如何在项目中使用Memcached服务: ```java package fi.ltrade.memcached; import java.io.Serializable; import java.util....

    java使用Memcached简单教程

    ### Java使用Memcached简单教程 #### 一、简介 Memcached是一个高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提高网站的浏览速度。它通过在内存中缓存数据和对象来减少读取数据库的次数...

    JAVA-memcached简单例子

    Java与Memcached的结合使用是分布式缓存领域中常见的技术实践。Memcached是一款高性能、分布式内存对象缓存系统,它可以将数据存储在内存中,从而加快读取速度,减轻数据库的负担。Java作为广泛使用的编程语言,有...

    memcached缓存使用演示

    - **缓存策略选择**:根据业务需求选择合适的缓存系统,如简单缓存场景可选用Memcached,复杂数据结构或需持久化的场景则考虑Redis。 - **缓存失效策略**:除了LRU外,还可以采用Time-To-Live(TTL)、手动清除等方式...

    java_memcached-release_2.5.1.jar Memcache java jar 包

    `MemCachedManager.java`可能是库中的一个类,用于管理Memcached实例,帮助用户更方便地连接、操作和管理缓存。 这个库的核心功能包括: 1. **连接管理**:库提供了一种方式来建立和维护到Memcached服务器的连接。...

    memcached-1.2.1-win32.zip 和 java_memcached-release_1.6.zip

    这暗示我们将探讨如何在Java应用程序中集成和使用Memcached作为缓存解决方案。 **Memcached简介** Memcached是一款高性能、分布式的内存对象缓存系统,用于减少数据库负载,提高Web应用的响应速度。它通过将数据...

    java_memcached-release_1.6.zip

    总的来说,Java Memcached客户端为Java开发者提供了简单易用的接口,以实现高效、可扩展的分布式缓存功能。通过这个压缩包,开发者可以获得完整的源码、库文件和文档,以便在自己的项目中充分利用Memcached的优势。

    java_memcached-release_2.6.3.zip

    Java Memcached 客户端是Java开发者用于与Memcached分布式内存缓存系统交互的一个库。在版本2.6.3中,它提供了高效且可靠的连接管理,以及对Memcached服务器的全面支持。这个压缩包“java_memcached-release_2.6.3....

    memcached 的简单java实例

    以下是一个简单的Java实例,演示如何使用Spymemcached连接到Memcached服务器并执行基本操作: 1. **添加依赖** 首先,你需要在项目中添加Spymemcached的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下...

    Memcached java的使用实例

    本文将深入讲解如何在Java环境下集成和使用Memcached。 首先,我们需要在Java项目中引入Memcached的客户端库。常见的Java Memcached客户端有spymemcached和xmemcached,这里以spymemcached为例。可以通过Maven在`...

    java_memcached-release_2.6.3.rar 客户端所有包

    Java Memcached客户端是Java开发者用来与Memcached分布式内存缓存系统进行交互的工具。这个`java_memcached-release_2.6.3.rar`压缩包包含了用于Java客户端开发所需的全部依赖库,使得开发者能够轻松地在Java应用中...

    java_memcached-release_2.6.6.jar及其依赖包

    使用Java Memcached客户端时,开发者需要实例化一个Memcached客户端对象,配置它连接到一个或多个Memcached服务器。然后,他们可以使用提供的方法来存储和检索数据,例如`set(key, timeout, value)`用于设置键值对,...

    java中连接memcached服务器

    Java连接Memcached服务器是开发过程中常见的一环,尤其是在构建分布式系统时,利用Memcached作为缓存服务可以显著提升数据访问速度。Memcached是一款高性能、分布式内存对象缓存系统,能够临时存储键值对数据,减轻...

    memcached实例

    本实例将带你深入了解如何安装 Memcached 客户端,并学习如何使用它来缓存数据以及清除缓存内容。 ### 一、安装 Memcached 在开始使用 Memcached 之前,你需要先在服务器上安装它。安装过程可能因操作系统而异,...

    java连接memcached示例代码

    Java连接Memcached是一种常见的缓存操作,特别是在处理大数据量或者需要快速响应的Web应用程序中。Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提高网站性能。下面我们将详细探讨如何在...

    Java使用memcached重难点.pdf

    在Java中使用memcached作为缓存系统,有多个关键点需要注意。memcached是一个高性能的分布式内存对象缓存系统,能够显著提升Web应用的性能。以下是对Java与memcached集成及使用的一些重要知识点: 1. **依赖库**: ...

    Java使用memcached步骤(含源码及配置).zip

    Java使用Memcached是一种常见的缓存策略,特别是在高并发、大数据量的应用场景中,Memcached能够有效地提高系统的响应速度和性能。下面将详细讲解如何在Java项目中集成和使用Memcached,以及配置和测试过程。 首先...

    memcached java简单实例

    **标题:“memcached java简单实例”** 在Java开发中,我们常常会遇到缓存的需求,以提高应用程序的性能。Memcached是一款高效的分布式内存对象缓存系统,它能够将数据存储在内存中,从而减少对数据库的访问。这篇...

    缓存服务器memcached代码及使用文档

    在J2EE项目中,通常使用Java的Memcached客户端库(如spymemcached或xmemcached)来与Memcached服务器交互。以下是一般步骤: 1. 添加客户端库依赖:在项目的Maven或Gradle配置文件中引入对应的Memcached客户端库。 ...

    普通java工程测试java使用memcached连接服务端

    Java工程中的Memcached连接服务端测试是开发过程中的一项重要任务,尤其对于分布式系统而言,缓存服务如Memcached能够显著提升应用性能。Memcached是一种高性能、分布式的内存对象缓存系统,广泛应用于减轻数据库...

Global site tag (gtag.js) - Google Analytics