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

memcached client1.6使用文档

    博客分类:
  • java
阅读更多
假设我们有3台memcached 服务器,server1 和server2 有3GB 的内存空间,server3 有2GB 的内存空间.下面程序说明怎么来创建客户端. import com.danga.MemCached.*;public class MyClass {// 创建一个 memcached 客户端对象protected static MemCachedClient mcc = new MemCachedClient();// 创建  memcached连接池static{  // 指定memcached服务地址String[] servers ={ "server1.mydomain.com:1121","server2.mydomain.com:1121", "server3.mydomain.com:1121" };// 指定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 examples() {mcc.set( "foo", "This is a test String" );String bar = mcc.get( "foo" );}}

MemCachedClient 类 常用的方法说明
创建 client对象 设置参数:
MemCachedClient mc = new MemCachedClient();

//压缩模式
mc.setCompressEnable(true);

// 如果 cache数据 大于4 KB 就启用压缩
mc.setCompressThreshold(4096);

// 基本类型tostring方法
// 通常不需要设置
mc.setPrimitiveAsString(true);

存储一个对象:
MemCachedClient mc = new MemCachedClient();String key   = "cacheKey1";Object value = SomeClass.getObject();mc.set(key, value);

用客户端hashcode 存储一个对象:

MemCachedClient mc = new MemCachedClient();String key   = "cacheKey1";Object value = SomeClass.getObject();Integer hash = new Integer(45);mc.set(key, value, hash);set方法:在cache中存储一个指定对象   add 和replace 方法功能差不多 add -- 如果不存在 这个key的对象,将会存储一个对象到cache中 replace --只有当存在指定key对象的时候 会覆盖已有对象

删除一个对象:
MemCachedClient mc = new MemCachedClient();String key   = "cacheKey1";mc.delete(key);

结合hashcode 删除一个对象:
MemCachedClient mc = new MemCachedClient();String key   = "cacheKey1";Integer hash = new Integer(45);mc.delete(key, hashCode);

怎么cache计数,增 减计数:
MemCachedClient mc = new MemCachedClient();String key   = "counterKey";mc.storeCounter(key, new Integer(100));System.out.println("counter after adding      1: " mc.incr(key));System.out.println("counter after adding      5: " mc.incr(key, 5));System.out.println("counter after subtracting 4: " mc.decr(key, 4));System.out.println("counter after subtracting 1: " mc.decr(key));

利用客户端的hashcode存储计数 增减 计数:
MemCachedClient mc = new MemCachedClient();String key   = "counterKey";Integer hash = new Integer(45);mc.storeCounter(key, new Integer(100), hash);System.out.println("counter after adding      1: " mc.incr(key, 1, hash));System.out.println("counter after adding      5: " mc.incr(key, 5, hash));System.out.println("counter after subtracting 4: " mc.decr(key, 4, hash));System.out.println("counter after subtracting 1: " mc.decr(key, 1, hash));

获取一个对象:
MemCachedClient mc = new MemCachedClient();String key   = "key";Object value = mc.get(key);

用客户端hashcode获取一个对象:
MemCachedClient mc = new MemCachedClient();String key   = "key";Integer hash = new Integer(45);Object value = mc.get(key, hash);

从cache 中获取多个对象
MemCachedClient mc = new MemCachedClient();String[] keys      ={ "key", "key1", "key2" };Mapvalues = mc.getMulti(keys);

用客户端hashcode() 从cache中获取多个对象
MemCachedClient mc = new MemCachedClient();String[] keys      = { "key", "key1", "key2" };Integer[] hashes   ={ new Integer(45), new Integer(32), new Integer(44) };Map<Object> values = mc.getMulti(keys, hashes);


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

得到服务器memcached的状态信息
MemCachedClient mc = new MemCachedClient();Map stats = mc.stats();

注意点
1:Failover/Failback
当一个memcached服务器失效的时候客户端默认会failover另一个服务去.

如果失效的服务器 恢复运行,客户端会返回到原来连接的服务器.
如果你不想用这个功能 设置下面的参数
pool.setFailover( false );
pool.setFailback( false );

2:序列化
Boolean

Byte
String
Character
StringBuffer
StringBuilder
Short
Long
Double
Float
Date
java默认的类型没有实现序列化 可以设置
mcc.setPrimitiveAsString( true )替代.

Meetup.com实践过程中得出的一个经验 ,项目中model 对象implement
Externalizable 实现序列化,可以节省cache 对象的大小。从而节省网络带宽和内存空间。
from:http://hi.baidu.com/asheng99012/blog/item/4c613816676c7756f2de327d.html
分享到:
评论

相关推荐

    windows下的memcached 1.6.21,并且做成了windows的服务

    在windows下编译的最新的memcached 1.6.21 由于1.4.5以后的memcached不支持windows服务。 使用第三方工具做成了windows的服务 使用说明: 1、解压rar文件 2、以管理员身份运行cmd.exe 3、然后执行service_install....

    memcached安装包以及MemCachedClient

    **Memcached 安装与使用详解** Memcached 是一款高性能的分布式内存缓存系统,用于在Web应用中减轻数据库负载。它将数据存储在内存中,以键值对的形式提供快速访问,尤其适用于高并发场景。Memcached 使用简单,可...

    memcachedclient-2.0.1.jar

    memcachedclient-2.0.1.jar 之前在网上搜了很久没搜到,所以找到了跟大家分享

    c# asp.net memcached client 调用示例

    3. Memcached.ClientLibrary.dll - 这是Memcached的C#客户端库,我们将在项目中直接使用这个库来与Memcached服务器通信。 4. Commons.dll - 这可能是一个自定义的通用功能库,包含了一些辅助函数,但具体功能需要...

    memcached client for java

    memcached的java客户端jar包,方便调用memcached的服务

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

    MemcachedClient memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211)); // 存储数据 String key = "exampleKey"; String value = "exampleValue"; memcachedClient.set(key, ...

    java_memcached-release_1.6.zip

    标题“java_memcached-release_1.6.zip”表明这是一个Java Memcached的版本1.6的发布包,通常包含了该版本的所有源码、编译后的jar文件以及相关的文档。用户可以通过解压这个zip文件来获取所需的内容,以便在自己的...

    Memcached Java Client API详解

    Memcached Java Client API详解.doc

    memcaChed java client jar包

    MemcachedClient client = new MemcachedClient(new InetSocketAddress("localhost", 11211)); ``` 这里`localhost`是Memcached服务器的地址,`11211`是默认的Memcached端口号。 2. 存储数据: ```java client.set...

    Memcached Client 使用手册

    ### Memcached Client 使用手册 #### Cache Client 接口定义与功能概述 - **ICache**:作为缓存的基础接口,提供了缓存的基本操作方法。这些方法涵盖了缓存数据的存储、检索、删除等功能,旨在为应用程序提供高效...

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

    `memcached-1.2.1-win32.zip` 提供了Memcached服务端,而`java_memcached-release_1.6.zip` 提供了Java客户端,使得开发者能够轻松地在Java环境中集成和使用Memcached。学习和掌握这些资源,将有助于构建更加快速、...

    缓存memcached-1.2.1

    - **缓存策略**:Memcached通常使用LRU(Least Recently Used)策略,当内存空间不足时,优先淘汰最近最少使用的数据。 - **数据过期**:可以为每个键设置过期时间,过期后自动删除数据,也可以设置永不过期。 - ...

    memcached与JAVA实例文档

    **Memcached与Java实例文档详解** Memcached是一种高性能、分布式内存对象缓存系统,它能够减轻数据库的负担,提高Web应用的性能。在Java开发环境中,Memcached被广泛用于存储临时数据,提升应用响应速度。本文将...

    memcached-client.php

    memcached-client.php

    memcached+nginx使用文档

    **Memcached与Nginx整合使用详解** Memcached和Nginx是两个在Web开发中广泛应用的工具。Memcached是一款高性能、分布式内存对象缓存系统,它可以用来减轻数据库的负载,提高网站性能。而Nginx则是一款强大的、高...

    Memcached实例与文档

    压缩包中的文档可能包括了Memcached的官方文档、用户手册、教程、示例代码等,这些都是学习和解决Memcached使用过程中问题的宝贵资源。建议仔细阅读和实践,以便深入理解和掌握Memcached。 总之,Memcached作为一款...

    memcached 源码生成的chm文档

    为了便于分析memcached的源码,使用doxygen生成了这个文档

    Memcached v1.6.12 For Windows(MSYS编译)

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...

    memcached for java client 例子

    "memcached for java client 例子" 指的是一个使用Java语言编写的客户端库,用于与memcached缓存系统进行交互。Memcached是一种高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提升Web应用的响应速度。 **...

    Memcached.ClientLibrary.dll

    Memcached.ClientLibrary.dll Memcached.ClientLibrary.dll

Global site tag (gtag.js) - Google Analytics