小弟初学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)
把连接池大小和等待时间设置长也不能解决这个问题,请高手们帮忙解决下
相关推荐
在PHP 5.4中使用Memcache不仅可以提升Web应用的响应速度,还可以减轻数据库的压力,尤其适用于那些读取频繁、写入较少的应用场景。不过需要注意的是,Memcache不提供数据持久化,一旦服务重启,所有缓存数据都会丢失...
**Memcache的使用** 1. **连接与断开**:在编程中,首先要建立与Memcache服务器的连接,设置主机和端口信息。完成操作后,记得正确关闭连接。 2. **存储操作**:通过键值对的方式进行数据存储,包括`set`(设置)、...
Memcache是一个广泛使用的开源高性能分布式内存对象缓存系统,它能够通过在内存中存储数据来减少对数据库的访问,从而提高Web应用的性能。 描述中的"windows下memcache安装包 附带php扩展包"揭示了这个压缩包不仅...
在本文中,我们将深入探讨Memcache的核心原理、功能、使用场景以及常见操作。 ### 一、Memcache简介 Memcache最初由Danga Interactive公司开发,现已成为开源项目,被许多大型网站如Facebook、Twitter等采用。它的...
1. **性能优化**: memcache通过缓存频繁访问的数据,显著降低了数据库的压力,提高了Web应用的响应速度和并发处理能力。 2. **会话管理**: 利用memcache进行会话数据的存储,不仅可以避免单一服务器的会话数据丢失...
Memcache 使用手册 Memcache 是一种高性能的内存键值缓存,它可以为应用程序提供高速的数据访问。Memcache 服务可以通过应用程序的多个实例访问该缓存, Memcache 对于那些不需要数据库的永久性功能和事务功能的...
学习和使用`Memcache-20151006.doc`和`Memcached 原理和使用详解.pdf`文档,将有助于深入理解Memcache的工作原理和最佳实践。同时,通过`代码.zip`中的示例代码,可以更直观地了解Memcache在实际项目中的应用。
EnyimMemcached是.NET社区中广泛使用的Memcache客户端,它支持多种缓存操作,如添加、删除、替换、获取以及多键操作。其API简洁明了,易于理解和使用。StackExchange.Redis则主要用于Redis数据库,但也有支持...
Memcache 是一种广泛使用的分布式内存缓存系统,用于在 Web 应用程序中提高数据读取速度,通过存储经常访问的数据到内存中,避免了频繁的数据库查询,从而提升了整体性能。 描述中的“实测可以使用”意味着这个 ...
#### 三、使用Spring管理Memcache的优势 - **统一管理**:通过Spring框架可以将Memcache的配置和其他Spring Bean统一管理起来,便于维护和调整。 - **简化开发**:Spring框架提供了一系列的模板方法,如`...
压缩包中的`MemCache使用.txt`文档可能包含了安装、配置和测试的详细步骤,以及如何监控MemCache的性能。通常,我们可以通过以下方式进行测试: 1. **命令行测试**:使用telnet命令行工具连接到MemCache服务器,...
在Java环境中,为了使用Memcache服务,我们需要引入特定的jar包来提供客户端支持。"memcache所需要的jar包"这个标题暗示我们将讨论与Java环境下的Memcache客户端库相关的知识点。 1. **Memcache的基本概念** - ...
Memcache是一种广泛使用的分布式内存缓存系统,常用于减轻数据库负载,提高Web应用的性能。...记住,Memcache主要用于临时存储频繁访问的数据,以减少对数据库的直接访问,从而提高Web应用的响应速度。
### Memcache安装与基本操作详解 #### 一、前言 Memcache是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用,减轻数据库负担。本文将详细介绍如何安装配置...希望本文能帮助您更好地理解和使用Memcache。
2. **连接memcached服务器**:使用`$memcache = new Memcache;`创建一个新的Memcache对象,然后通过`$memcache->connect('server', port)`连接到memcached服务器。 3. **操作缓存**:可以使用`add()`, `set()`, `...
Windows Memcache的安装和.NET使用是许多开发者在构建基于Windows的Web应用程序时需要掌握的技术。本文将深入探讨Windows环境下如何安装Memcache,以及如何使用.NET与Memcache进行交互,同时也会提及相关的动态库。 ...
- **缓存数据**:通过`memcache_connect()`函数连接到Memcache服务器,然后使用`memcache_set()`和`memcache_get()`等方法存储和检索数据。 - **键值对操作**:Memcache基于键值对存储数据,你可以通过键来定位并...
C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档