`
mushme
  • 浏览: 795420 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java连接memcached示例代码

 
阅读更多
1.下载memcached的windows版本,地址在http://code.jellycan.com/memcached/
2.解压到任意目录,然后用管理员身份cd到你的解压目录
3.memcached.exe -d install
4.memcached.exe -d start
memcached安装完成。


https://github.com/gwhalin/Memcached-Java-Client/downloads
java_memcached-release_2.5.0.zip为java的连接客户端
1.解压,将里面的jar包拷贝到项目的lib目录下

使用以下代码调用

package info.frady;


import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

/**
 * Oct 15, 2011
 */
public class MemCachedTest {
	private static MemCachedClient mcc = new MemCachedClient();
	 
    static {
        String[] servers = {"127.0.0.1:11211"};
        //创建一个连接池
        SockIOPool pool = SockIOPool.getInstance();
        //设置缓存服务器
        pool.setServers(servers);
        //设置初始化连接数,最小连接数,最大连接数以及最大处理时间
        pool.setInitConn(50);
        pool.setMinConn(50);
        pool.setMaxConn(500);
        pool.setMaxIdle(1000 * 60 * 60);
        //设置主线程睡眠时间,每3秒苏醒一次,维持连接池大小
//maintSleep 千万不要设置成30,访问量一大就出问题,单位是毫秒,推荐30000毫秒。
        pool.setMaintSleep(3000);
        //关闭套接字缓存
        pool.setNagle(false);
        //连接建立后的超时时间
        pool.setSocketTO(3000);
        //连接建立时的超时时间
        pool.setSocketConnectTO(0);
        //初始化连接池
        pool.initialize();
    }
 
    protected MemCachedTest(){
 
    }
 
    public static MemCachedClient getInstance(){
        return mcc;
    }
 
    public static void main(String[] args) {
 
        MemCachedClient cache = MemCachedTest.getInstance();
        
        
        cache.add("frady", "this is a test");
        System.out.println(cache.get("frady"));
        
    }
}


以下是对象的封装
package info.frady;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

/**
 * Oct 15, 2011
 */
public class MemTest {
	// 创建一个 memcached 客户端对象

	protected static MemCachedClient mcc = new MemCachedClient();

	// 创建 memcached连接池

	static

	{ // 指定memcached服务地址

	String[] servers =

	{ "127.0.0.1:11211","127.0.0.1:11211", "127.0.0.1:11211" };

	// 指定memcached服务器负载量

	Integer[] weights ={ 3, 3, 2 };

	// 从连接池获取一个连接实例

	SockIOPool pool = SockIOPool.getInstance();

	// 设置服务器和服务器负载量

	pool.setServers( servers );

	pool.setWeights( weights );

	// 设置一些基本的参数

	//设置初始连接数5 最小连接数 5 最大连接数 250

	//设置一个连接最大空闲时间6小时

	pool.setInitConn( 5 );

	pool.setMinConn( 5 );

	pool.setMaxConn( 250 );

	pool.setMaxIdle( 1000 * 60 * 60 * 6 );

	// 设置主线程睡眠时间

	// 每隔30秒醒来 然后

	// 开始维护 连接数大小

	pool.setMaintSleep( 30 );

	// 设置tcp 相关的树形

	// 关闭nagle算法

	// 设置 读取 超时3秒钟 set the read timeout to 3 secs

	// 不设置连接超时

	pool.setNagle( false );

	pool.setSocketTO( 3000 );

	pool.setSocketConnectTO( 0 );

	// 开始初始化 连接池

	pool.initialize();

	// 设置压缩模式

	//如果超过64k压缩数据

	mcc.setCompressEnable( true );

	mcc.setCompressThreshold( 64 * 1024 );

	}

	public static void main(String args[]) {
		User u1 = new User();
        u1.setUserName("frady");
        u1.setEmail("weimengiq@126.com");
        mcc.add("fradyt", u1);
 
        User u2 = (User) mcc.get("fradyt");
        System.out.println("email=" + u2.getEmail());
        u2.setEmail("weimengiq@gmail.com");
        mcc.replace("fradyt", u2);
 
        u2 = (User) mcc.get("fradyt");
        System.out.println("email=" + u2.getEmail());
       

	}

	}



此处要注意User得实现序列化
package info.frady;

import java.io.Serializable;

/**
 * Oct 15, 2011
 */
public class User implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1003272426055966138L;
	private String userName;
	private String email;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}



查看cache的状态
Map <String, Map<String, String>> stats = cache.stats();
        for (Map.Entry<String, Map<String, String>> m : stats.entrySet()) {
        	System.out.println(m.getKey());
        	Map<String, String> values=m.getValue();
        	for (Map.Entry<String, String> v : values.entrySet()) {
            	System.out.print(v.getKey()+":");
            	System.out.println(v.getValue());
            }
        }


清空所有的对象
MemCachedClient mc = new MemCachedClient();
mc.flushAll();


据说2.5有连接数量过多导致oom的bug,附件提供了2.6.1版本的包。
官方地址:https://github.com/gwhalin/Memcached-Java-Client/downloads
分享到:
评论

相关推荐

    memcached和activeMQ的JAVA示例代码

    标题"memcached和activeMQ的JAVA示例代码"表明这是一个关于使用Java编程语言实现的,针对memcached缓存系统和activeMQ消息中间件的示例项目。这通常是为了帮助开发者理解如何在实际应用中整合这两种技术。 描述中的...

    java+memcached所需文件

    以下是一个简单的Java代码示例,演示了如何使用Spymemcached连接到Memcached服务器并进行操作: ```java import net.spy.memcached.MemcachedClient; import net.spy.memcached.BinaryConnectionFactory; public ...

    java使用memcached的实例

    本文将详细解析如何在Java项目中使用Memcached,包括其配置方法以及一个具体的示例代码,旨在帮助开发者深入理解并掌握这一技术。 ### 一、Memcached简介 Memcached是一种开源的高性能内存键值存储系统,主要用于...

    java使用Memcached简单教程

    ##### 3.2 编写示例代码 接下来,我们可以编写一个简单的Java类来演示如何与Memcached交互: ```java import net.spy.memcached.AddrUtil; import net.spy.memcached.MemcachedClient; public class ...

    java_memcached-release_1.3.2的演示工程(JDK1.4)

    8. **代码示例**:`javamemcacheddemo`这个文件名可能代表一个包含Java Memcached使用示例的项目。这个项目可能包含了如何初始化客户端、执行基本操作以及关闭连接的代码片段,是学习和理解Java Memcached API的好...

    JAVA-memcached简单例子

    6. **示例代码** - 在提供的压缩包中,可能包含了简单的Java代码示例,如`memcached`和`memcached2`两个文件。这些文件可能演示了如何创建客户端,存储和检索数据的基本步骤。通过阅读和运行这些示例,你可以更好地...

    memcached安装及java应用使用memcached

    通常,这可能是一个包含memcached源代码、文档、示例代码或教程的压缩包。 **详细知识点:** 1. **memcached介绍**:解释memcached的作用,它是如何通过将数据存储在内存中来减少数据库的读取压力,从而提高Web...

    Java 配置Memcached 应用详解

    ### Java配置Memcached应用详解:构建高效缓存解决方案 #### Memcached在Java环境下的应用解析 Memcached,作为一款高性能的分布式内存对象缓存系统,主要用于加速动态Web应用程序的加载速度,通过减轻数据库负担...

    java_memcached-release_2.0.1.zip

    这个zip文件“java_memcached-release_2.0.1.zip”包含了Java Memcached客户端库的源代码、编译后的二进制库、文档和可能的示例。下面将详细讨论该库的关键知识点: 1. **Memcached客户端接口**:Java Memcached...

    java_memcached-release_2.6.2.zip

    在"java_memcached-release_2.6.2.zip"这个压缩包中,我们可以期待找到关于Java Memcached库的版本2.6.2的所有必要文件,包括JAR包、源代码、文档、示例代码以及可能的构建脚本。这个版本可能包含了对之前版本的改进...

    memcached 的简单java实例

    **Memcached简介** Memcached是一种高性能、分布式内存对象缓存系统,用于在Web应用程序中减少数据库负载,提高数据访问速度。...在压缩包文件"memcached-dome"中,可能包含了完整的Java代码示例,供你参考和学习。

    Memcached-Java-Client-release_2.6.1.zip

    《Java与Memcached整合详解——基于Memcached-Java-Client 2.6.1》 在现代Web开发中,缓存技术是提升系统性能的重要手段之一。Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于缓解数据库负载,提高响应...

    memcached for java client 例子

    综上所述,这个压缩包中的"JAVA工程"可能是演示了如何在Java应用程序中使用memcached客户端进行数据缓存操作的示例代码,涵盖了从连接、存储到查询等一系列操作。开发者可以通过学习和运行这些示例,更好地理解和...

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

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

    memcached java客户端驱动包

    Java连接Memcached的驱动包使得Java开发者能够方便地与Memcached进行交互,实现数据的快速读写。这个驱动包包含了丰富的功能和特性,下面将详细阐述其关键知识点。 ### 1. 基本操作接口 驱动包提供了包括`set`、`...

    Centos6.5下安装Memcached完整示例

    总结来说,这个示例涵盖了在CentOS 6.5上从源码安装Memcached,配置开机启动,以及使用Java客户端与Memcached交互的关键步骤。通过这种方式,你可以充分利用Memcached的性能优势,提高你的Web应用的效率。记得在实际...

    java实现memcache服务器的示例代码

    Java 实现 Memcache 服务器的示例代码 Memcache 是一个高性能的分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等...

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

    **示例代码** ```java import net.spy.memcached.*; public class MemcachedExample { public static void main(String[] args) { // 初始化客户端 MemcachedClient memcachedClient = new MemcachedClient...

    spring memcached 所需jar

    示例中使用了`serialTranscoder`,默认使用Java的序列化机制。也可以自定义Transcoder,如使用JSON或protobuf进行更高效的序列化。 5. **启动和测试**:完成上述配置后,启动应用并测试缓存功能,观察日志确认缓存...

Global site tag (gtag.js) - Google Analytics