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

MemcachedClient4Java

    博客分类:
  • Java
阅读更多

  项目中用到了cenwenchu的MemcachedClient4Java ,版本号是2.5.1版。

  在使用的过程中发现如果memcached服务器重启,客户端会访问失败并抛出"no socket to availble"的异常,失败几次之后又可以正常访问了。

  原因是服务器重启的时候,客户端连接池里原有的socket连接失效了,因此使用的时候才抛出异常,抛出异常之后失效的socket被销毁,建立一个新的连接,以后再用的时候就又可以正常访问了。

  客户端建立新的socket连接时,如果发现服务器连接不上,会把当前连接池里该服务器的连接都销毁掉。

  它的与连接相关的代码主要是SockIOPool,里面有一个维护线程。维护线程实现的功能比较简单,主要是查看连接池里的可用连接数,如果数量小于配置的最小连接数就创建新连接,如果大于最大连接数就销毁空闲的连接,另外还要从连接池里移出死连接。

我修改了它获取连接时异常处理的代码,如果使用前检查发现连接不可用就直接销毁这个连接,然后建立一个新的连接。这样就可以在服务器重启之后立即正常访问而不需要再等失败几次之后才可以。

注意要在配置文件里开启它的连接池维护线程已经检查连接可用性的功能。

分享到:
评论
2 楼 doccent 2010-09-10  
tedeyang 写道
如果建立新连接时memcached服务器还没启动完成怎么办?你是throw还是return null

是调用它的createSocket方法创建的,它返回null了
1 楼 tedeyang 2010-09-07  
如果建立新连接时memcached服务器还没启动完成怎么办?你是throw还是return null

相关推荐

    memcached client for java

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

    spring调用memcached client for java

    <property name="memcachedClient" ref="memcachedClient" /> ``` 3. **启用缓存注解**:在Spring配置中开启缓存支持,并配置默认的缓存策略: ```xml ``` 4. **使用缓存**:现在,你可以在需要缓存的方法...

    memcached安装包以及MemCachedClient

    对于 Java 开发者,`MemCachedClient` 是一个常用的 Memcached 客户端库。这里我们关注的是 `java_memcached-release_2.6.6.jar` 文件,这是 Spymemcached 库的一个版本,它提供了与 Memcached 服务器通信的接口。 ...

    memcached for java client 例子

    描述中提到"关于memcache 使用的 客户端是memcached client for java 的 JAVA工程",这意味着这个压缩包可能包含了一个Java项目,该项目专门设计用来连接并操作memcached服务器。Java客户端库允许开发人员在Java应用...

    memcaChed java client jar包

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

    Memcached Java Client API详解

    Memcached Java Client API详解.doc

    基于memcached client for java的cache封装

    本主题将深入探讨如何基于Java客户端对Memcached进行封装,以便更高效地在Java应用中使用它。 首先,我们需要理解Java中的Memcached客户端库,如spymemcached或xmemcached。这两个库都提供了与Memcached服务器通信...

    memcached 的简单java实例

    MemcachedClient client = new MemcachedClient(new BinaryConnectionFactory(), AddrUtil.getAddresses("127.0.0.1:11211")); ``` 3. **存储数据** 使用`set`方法将键值对存储到Memcached。 ```java String ...

    java使用Memcached简单教程

    memcachedClient = new MemcachedClient(AddrUtil.getAddresses("localhost:11211")); } catch (Exception e) { System.err.println("无法初始化MemcachedClient: " + e.getMessage()); } } public static ...

    memcached java client

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

    Memcached-Java-Client-release_2.6.1.zip

    - **设置缓存**:使用`set`方法将键值对存储到Memcached,例如`memcachedClient.set("key", timeout, value);` - **获取缓存**:使用`get`方法获取缓存数据,例如`Object value = memcachedClient.get("key");` -...

    Memcached java的使用实例

    MemcachedClient client = new MemcachedClient(new InetSocketAddress("localhost", 11211)); // 这里的"localhost"和"11211"是默认的Memcached服务器地址和端口 } catch (IOException e) { e.printStackTrace...

    MemcachedClient4J:它是 java 的 memcached 客户端

    MemcachedClient4J 一个使用netty框架编写的mecached客户端,实现mecached ASCII协议,性能超过Spymecached。 有许多功能和扩展是完美的。 提供同步和异步两种接口,使用方法非常简单,示例如下: Memcached...

    MemCached Cache Java Client封装优化历程.docx

    在实际使用中,通常会开发 Java 客户端库来封装 Memcached 的操作,提供更方便的 API。封装过程可能包括: 1. **连接池管理**:为了提高性能,客户端可以使用连接池管理多个到 Memcached 服务器的连接,避免频繁...

    Spring memcached 源码

    要配置Spring Memcached,我们需要在Spring的配置文件(如`applicationContext.xml`)中声明`MemcachedClient`。这通常涉及到以下步骤: 1. 引入依赖:在`pom.xml`或`build.gradle`中添加`spring-memcached`的依赖...

    Memcached Client 使用手册

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

    java_memcached-release_2.6.3.zip

    MemcachedClient memcachedClient = new MemcachedClient(new BinaryConnectionFactory(), AddrUtil.getAddresses("localhost:11211")); ``` 接着,可以使用`set`方法存储数据,`get`方法获取数据,`delete`方法...

    Memcached-Java-Client-3.0.2.jar

    Memcached-Java-Client-3.0.2.jar

    java中连接memcached服务器

    MemcachedClient client = new MemcachedClient(new InetSocketAddress("localhost", 11211)); ``` 这里的"localhost"是Memcached服务器的IP地址,11211是默认端口号。如果服务器不在本地或使用了不同的端口,请...

Global site tag (gtag.js) - Google Analytics