0 0

使用memcache频繁报TimeoutException20

小弟初学memcache,客户端使用xmc1.3.5,服务端是1.4版本,启动命令是

memcached -m 1024 -u root -p 11211 -c 2048


现在发现老频繁的报TimeoutException,不知道如何解决
配置文件如下:
<bean name="baseMemcachedClientBuilder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder" abstract="true">

        <property name="connectionPoolSize" value="30"/>
        <property name="commandFactory">
            <bean class="net.rubyeye.xmemcached.command.TextCommandFactory"/>
        </property>
        <property name="sessionLocator">
            <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"/>
        </property>
        <property name="transcoder">
            <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder"/>
        </property>
        <property name="configuration" ref="configuration"/>
    </bean>

    <bean name="showMemCacheBuilder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder"
          parent="baseMemcachedClientBuilder">               <constructor-arg name="addressList">
                    <list>
                        <bean class="java.net.InetSocketAddress">
                            <constructor-arg>
                                <value>${memcache.show.client1.ip}</value>
                            </constructor-arg>
                            <constructor-arg>
                                <value>${memcache.show.client1.port}</value>
                            </constructor-arg>
                        </bean>
                    </list>
                </constructor-arg>
                <constructor-arg name="weights">
                    <list>
                        <value>1</value>
                    </list>
                </constructor-arg>
    </bean>

    <!-- Use factory bean to build memcached client -->
    <bean name="showCachedClient" factory-bean="showMemCacheBuilder"
          factory-method="build" destroy-method="shutdown">
    </bean>

    <bean name="configuration" class="com.google.code.yanf4j.config.Configuration">
    </bean>

    <bean name="showCacheWrapper" class="com.youku.recommend.cache.memcache.impl.RecommendCacheWrapper">
        <property name="client" ref="showCachedClient"/>
        <property name="exp" value="2592000"/>
    </bean>

完整的异常堆栈如下:
2012-03-06 11:19:08,950 [20226877@qtp-31711672-0] WARN  [com.youku.recommend.action.LoadDataAction] - file not found:d:/data/recommend/interfacefile/b_v_0_20120305
java.util.concurrent.TimeoutException: Timed out(200) waiting for operation
	at net.rubyeye.xmemcached.XMemcachedClient.latchWait(XMemcachedClient.java:2528)
	at net.rubyeye.xmemcached.XMemcachedClient.sendStoreCommand(XMemcachedClient.java:2511)
	at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1278)
	at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1336)
	at com.youku.recommend.cache.memcache.MemCacheWrapper.set(MemCacheWrapper.java:52)
	at com.youku.recommend.cache.service.RecommendCacheService.putShows(RecommendCacheService.java:84)
	at com.youku.recommend.async.task.file.ShowRecommendReadTask.handleFileLine(ShowRecommendReadTask.java:103)
	at com.youku.recommend.async.task.file.ShowRecommendReadTask.loadFile(ShowRecommendReadTask.java:70)
	at com.youku.recommend.async.task.file.ShowRecommendReadTask.run(ShowRecommendReadTask.java:45)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)


把连接池大小和等待时间设置长也不能解决这个问题,请高手们帮忙解决下
2012年3月06日 11:36

6个答案 按时间排序 按投票排序

0 0

将connectionPoolSize 设置成3 或者更小试试

2012年9月11日 13:25
0 0

1、是在本机测试吗?如果在其他机器测试,那网络有没有问题?
2、超时设置的多少?没有看到配置,设置为3000吧(3S的意思)
3、对缓存的操作很频繁吗?
4、加个参数试试,看是否有改善:memcached -d -m 1024 -u root -p 11211 -c 2048

2012年3月08日 13:22
0 0

在启动服务端的时候增加 -l 127.0.0.1,然后在客户端连接地址的地方写127.0.0.1:11211应该就没问题了

2012年3月08日 10:39
0 0

看看下面几点有没有问题:
1.看看防火墙设置
2.本机ip(127.0.0.1)和实际ip配置问题

2012年3月07日 12:40
0 0

处理的对象序列化了吗?

2012年3月07日 11:43
0 0

这个问题最好问 http://dennis-zane.iteye.com/

以下供参考:

1. 出现这种情况 用telnet试一下memcached 试一下是否可用以及执行时间
2. 设置更长的timeout

2012年3月07日 11:34

相关推荐

    PHP 5.4 使用的 memcache

    在PHP 5.4中使用Memcache不仅可以提升Web应用的响应速度,还可以减轻数据库的压力,尤其适用于那些读取频繁、写入较少的应用场景。不过需要注意的是,Memcache不提供数据持久化,一旦服务重启,所有缓存数据都会丢失...

    memcache分布式缓存的使用

    **Memcache的使用** 1. **连接与断开**:在编程中,首先要建立与Memcache服务器的连接,设置主机和端口信息。完成操作后,记得正确关闭连接。 2. **存储操作**:通过键值对的方式进行数据存储,包括`set`(设置)、...

    memcache1.2.1 for windows

    Memcache是一个广泛使用的开源高性能分布式内存对象缓存系统,它能够通过在内存中存储数据来减少对数据库的访问,从而提高Web应用的性能。 描述中的"windows下memcache安装包 附带php扩展包"揭示了这个压缩包不仅...

    【汇总】Memcache

    在本文中,我们将深入探讨Memcache的核心原理、功能、使用场景以及常见操作。 ### 一、Memcache简介 Memcache最初由Danga Interactive公司开发,现已成为开源项目,被许多大型网站如Facebook、Twitter等采用。它的...

    memcache使用手册

    Memcache 使用手册 Memcache 是一种高性能的内存键值缓存,它可以为应用程序提供高速的数据访问。Memcache 服务可以通过应用程序的多个实例访问该缓存, Memcache 对于那些不需要数据库的永久性功能和事务功能的...

    php之Memcache的使用

    学习和使用`Memcache-20151006.doc`和`Memcached 原理和使用详解.pdf`文档,将有助于深入理解Memcache的工作原理和最佳实践。同时,通过`代码.zip`中的示例代码,可以更直观地了解Memcache在实际项目中的应用。

    Memcache win版 服务器和.net驱动

    EnyimMemcached是.NET社区中广泛使用的Memcache客户端,它支持多种缓存操作,如添加、删除、替换、获取以及多键操作。其API简洁明了,易于理解和使用。StackExchange.Redis则主要用于Redis数据库,但也有支持...

    php 5.4.15 64位 memcache.dll

    Memcache 是一种广泛使用的分布式内存缓存系统,用于在 Web 应用程序中提高数据读取速度,通过存储经常访问的数据到内存中,避免了频繁的数据库查询,从而提升了整体性能。 描述中的“实测可以使用”意味着这个 ...

    spring memcache 集成使用

    #### 三、使用Spring管理Memcache的优势 - **统一管理**:通过Spring框架可以将Memcache的配置和其他Spring Bean统一管理起来,便于维护和调整。 - **简化开发**:Spring框架提供了一系列的模板方法,如`...

    MemCache服务器端和使用说明

    压缩包中的`MemCache使用.txt`文档可能包含了安装、配置和测试的详细步骤,以及如何监控MemCache的性能。通常,我们可以通过以下方式进行测试: 1. **命令行测试**:使用telnet命令行工具连接到MemCache服务器,...

    memcache所需要的jar包

    在Java环境中,为了使用Memcache服务,我们需要引入特定的jar包来提供客户端支持。"memcache所需要的jar包"这个标题暗示我们将讨论与Java环境下的Memcache客户端库相关的知识点。 1. **Memcache的基本概念** - ...

    windows本地开启memcache服务

    Memcache是一种广泛使用的分布式内存缓存系统,常用于减轻数据库负载,提高Web应用的性能。...记住,Memcache主要用于临时存储频繁访问的数据,以减少对数据库的直接访问,从而提高Web应用的响应速度。

    memcache安装与基本操作详解

    ### Memcache安装与基本操作详解 #### 一、前言 Memcache是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用,减轻数据库负担。本文将详细介绍如何安装配置...希望本文能帮助您更好地理解和使用Memcache。

    PHP7.x 8.0 memcache dll php_memcache.dll

    2. **连接memcached服务器**:使用`$memcache = new Memcache;`创建一个新的Memcache对象,然后通过`$memcache-&gt;connect('server', port)`连接到memcached服务器。 3. **操作缓存**:可以使用`add()`, `set()`, `...

    Windows Memcache 安装 .net 使用实例及动态库

    Windows Memcache的安装和.NET使用是许多开发者在构建基于Windows的Web应用程序时需要掌握的技术。本文将深入探讨Windows环境下如何安装Memcache,以及如何使用.NET与Memcache进行交互,同时也会提及相关的动态库。 ...

    php7 memcache.dll扩展,亲试可以使用

    - **缓存数据**:通过`memcache_connect()`函数连接到Memcache服务器,然后使用`memcache_set()`和`memcache_get()`等方法存储和检索数据。 - **键值对操作**:Memcache基于键值对存储数据,你可以通过键来定位并...

    C语言memcache代码文档

    C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档

Global site tag (gtag.js) - Google Analytics