`
sbl2255
  • 浏览: 218533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Memcached之 XMemcached

 
阅读更多
Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,现在也有很多人将它作为内存式数据库在使用,memcached通过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。

 MemcachedClientBuilder builder = new XMemcachedClientBuilder(
                                        AddrUtil.getAddresses("localhost:11211"));
    MemcachedClient memcachedClient = builder.build();
    try {
                memcachedClient.set("hello", 0, "Hello,xmemcached");
                String value = memcachedClient.get("hello");
                System.out.println("hello=" + value);
                memcachedClient.delete("hello");
                value = memcachedClient.get("hello");
                System.out.println("hello=" + value);
    } catch (MemcachedException e) {
                System.err.println("MemcachedClient operation fail");
                e.printStackTrace();
    } catch (TimeoutException e) {
                System.err.println("MemcachedClient operation timeout");
                e.printStackTrace();
    } catch (InterruptedException e) {
                // ignore
    }
    try {
              //close memcached client
                memcachedClient.shutdown();
    } catch (IOException e) {
                System.err.println("Shutdown MemcachedClient fail");
                e.printStackTrace();
    }

为了节省篇幅,本文的所有代码示例都没有给出完整的package名,具体包名请查询javadoc或者使用IDE工具帮助引入。

因为XMemcachedClient的创建有比较多的可选项,因此提供了一个XMemcachedClientBuilder类用于构建MemcachedClient。MemcachedClient是主要接口,操作memcached的主要方法都在这个接口,XMemcachedClient是它的一个实现。传入的memcached节点列表要求是类似"host1:port1 host2:port2 …"这样的字符串,通过AddrUtil.getAddresses方法获取实际的IP地址列表。

存储数据是通过set方法,它有三个参数,第一个是存储的key名称,第二个是expire时间(单位秒),超过这个时间,memcached将这个数据替换出去,0表示永久存储(默认是一个月),第三个参数就是实际存储的数据,可以是任意的java可序列化类型。获取存储的数据是通过get方法,传入key名称即可。如果要删除存储的数据,这是通过delete方法,它也是接受key名称作为参数。XMemcached由于是基于nio,因此通讯过程本身是异步的,client发送一个请求给memcached,你是无法确定memcached什么时候返回这个应答,客户端此时只有等待,因此还有个等待超时的概念在这里。客户端在发送请求后,开始等待应答,如果超过一定时间就认为操作失败,这个等待时间默认是一秒,上面例子展现的3个方法调用的都是默认的超时时间,这三个方法同样有允许传入超时时间的重载方法,例如

   value=client.get(“hello”,3000);
就是等待3秒超时,如果3秒超时就跑出TimeutException,用户需要自己处理这个异常。因为等待是通过调用CountDownLatch.await(timeout)方法,因此用户还需要处理中断异常InterruptException。最后的MemcachedException表示Xmemcached内部发生的异常,如解码编码错误、网络断开等等异常情况。

分享到:
评论

相关推荐

    Java的开源高性能memcached客户端XMemcached.zip

    Xmemcached是基于java nio实现的高性能可扩展的memcached客户端。它的主要特点: 高性能,稳定可靠,已经在众多公司的众多项目里得到应用。 功能完备:客户端分布式、权重、最新最完整的协议支持。 ...

    xmemcached jar包,源文件,api

    **xmemcached:高效、强大的Memcached客户端** xmemcached是一个高性能、易用且功能丰富的Java Memcached客户端库。它提供了全面的API,使得开发者能够方便地与Memcached缓存系统进行交互,从而提高Web应用的性能和...

    xmemcached

    Xmemcached是一款基于Java编写的高性能、高可用性的Memcached客户端库,由Kafka的创始人Jay Kreps开发。它提供了丰富的功能和优秀的性能,使得在Java应用中集成和使用Memcached变得更加简单。Xmemcached致力于提供...

    xmemcached-1.2.4源码

    XMemcached is a high performance, easy to use blocking multithreaded memcached client in java. It's nio based (using my opensource nio framework :yanf4j), and was carefully tuned to get top ...

    xmemcached 中文开发手册

    XMemcached不仅支持memcached的所有协议,还具备一系列增强功能,使其成为开发者的首选工具之一。 #### 主要特性 1. **高性能**: - 基于Java NIO(非阻塞I/O),相较于传统的阻塞I/O模型,Java NIO能够更好地处理...

    Xmemcached memcached 实例

    类包括Xmemcached客户端实现和builder实现以及memcached client for java实现,对初学者有借鉴作用,特别是在开发简单例子时出现的超时情况的可以看看是否是同本事例相同。 xmemcached time out 5000 1000

    xmemcached-1.4.3.jar

    xmemcached是一款高性能、轻量级的Java客户端库,专为Memcached缓存系统设计,其1.4.3版本提供了丰富的功能和优化,旨在提升应用的性能和可扩展性。在本文中,我们将详细探讨xmemcached的核心特性和使用方法,帮助...

    Xmemcached官方中文手册

    Xmemcached是一个高性能、轻量级的Java客户端库,专门用于连接和操作Memcached分布式内存缓存系统。这份手册不仅包含了基础的API使用方法,还涵盖了如何将Xmemcached与Spring等主流框架进行集成的详细配置信息。 **...

    xmemcached 2.4.6.rar

    xmemcached是Java领域中一个高效、稳定且易于使用的Memcached客户端库,它为开发者提供了便捷的接口来操作Memcached服务器。在2.4.6这个版本中,xmemcached继续优化了性能和稳定性,为开发分布式缓存应用提供了强大...

    Xmemcached用户指南

    XMemcached是一款针对Java平台设计的高性能Memcached客户端。Memcached是一种分布式内存对象缓存系统,主要用于减轻数据库负担,提高动态Web应用程序的响应速度。随着技术的发展,Memcached也被用作内存式数据库。该...

    xmemcached api doc

    xmemcached 是一个高性能、线程安全的 Java 客户端库,用于连接和操作 Memcached 分布式内存缓存系统。它提供了丰富的 API,使得开发人员能够轻松地在应用程序中集成 Memcached 功能,以提升数据访问速度和系统性能...

    Xmemcached测试实例

    测试类包括Xmemcached客户端与memcached client for java两者,可运行比较性能。 XMemcached简介: XMemcached是基于 java nio的Memcached客户端,java nio相比于传统阻塞 io 模型来说,有 效率高(特别在高并发下...

    memcached安装包以及java所需的memcached架包

    2. **初始化连接**:在代码中,首先需要创建一个Memcached客户端实例,通常使用Spymemcached或XMemcached等客户端库,指定memcached服务器的地址和端口。 3. **操作缓存**:现在你可以开始进行基本的缓存操作,如`...

    Xmemcached一个java实现的分布式缓存

    Xmemcached是一个高性能、线程安全的Java实现的分布式缓存系统,专为Memcached设计。这个库的主要目标是提供简单、快速、无阻塞的客户端API,以便于开发人员在Java应用程序中集成和利用Memcached的强大功能。下面将...

    Memcached spring 的集成

    - Xmemcached是Java社区开发的一个高效Memcached客户端,它支持异步操作,具有高并发性,同时提供了丰富的API和异常处理机制。 3. **Spring集成**: - Spring框架提供了缓存抽象,允许开发者通过注解或XML配置来...

    memcache.spymemcached,和xmemcached 三种缓存实例

    spymemcached是由Spy公司开发的一个开源Java客户端,它是Memcached最常用的Java库之一。它提供了丰富的API,支持异步和同步操作,以及自动故障转移功能。spymemcached通过Netty框架进行网络通信,确保了高效的数据...

    spring集成memcached

    ### Spring集成Memcached详解 #### 一、Memcached简介与客户端选择 Memcached是一种高性能、分布式内存对象缓存系统,用于减轻数据库负载、加速动态Web应用,并提高网站速度。Spring框架可以通过集成Memcached来...

    memcached java client

    本篇文章将详细介绍两个常用的Java Memcached客户端:xmemcached和memcache-client-forjava。 **1. xmemcached** xmemcached是由Ketoo开发的一个高性能、高可用性的Java Memcached客户端。它提供了丰富的API,支持...

    memcaChed java client jar包

    例如,你可以使用流行的Spymemcached或Xmemcached客户端库,它们提供了简单易用的API来操作Memcached。 Spymemcached是一个流行的Java Memcached客户端,它支持异步操作,并且性能出色。使用Spymemcached时,你需要...

    memcached在SSH中的配置

    1. **添加依赖**:在SSH项目的pom.xml中添加memcached的客户端库,如spymemcached或xmemcached。 2. **配置Spring**: - 创建一个Memcached配置类,声明一个`MemcachedClient` bean,并配置服务器地址、池大小等...

Global site tag (gtag.js) - Google Analytics