在java中实现Memcache时出错

在java中实现Memcache时出错,java,memcached,Java,Memcached,我试图用Java编写一个简单的代码来连接memcache服务器。我正在使用SpymeCached 2.8 jar,但我遇到了一个“服务器重新连接”错误,我无法理解 代码是: **client = new MemcachedClient(new BinaryConnectionFactory(),AddrUtil.getAddresses("127.0.0.1:11211")); } catch (IOException e) { e.printStackTrace(

我试图用Java编写一个简单的代码来连接memcache服务器。我正在使用SpymeCached 2.8 jar,但我遇到了一个“服务器重新连接”错误,我无法理解

代码是:

**client = new MemcachedClient(new BinaryConnectionFactory(),AddrUtil.getAddresses("127.0.0.1:11211")); } catch (IOException e) { e.printStackTrace(); System.err.println("connection problem"); } client.set("someKey", 3600, new Integer(10)); Object myObject=temp.client.get("someKey"); System.out.println(myObject); client.delete("someKey");** **client=newmemcachedclient(newbinaryconnectionfactory(),AddrUtil.getAddresses(“127.0.0.1:11211”); }捕获(IOE异常){ e、 printStackTrace(); System.err.println(“连接问题”); } set(“someKey”,3600,新整数(10)); 对象myObject=temp.client.get(“someKey”); System.out.println(myObject); 客户。删除(“someKey”)** 但我得到的错误是:

**2012-06-14 17:58:31.412 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue 2012-06-14 17:58:31.428 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@1621e42 2012-06-14 17:58:31.428 INFO net.spy.memcached.MemcachedConnection: Reconnecting due to exception on {QA sa=/127.0.0.1:11211, #Rops=1, #Wops=0, #iq=0, topRop=Cmd: 1 Opaque: 1 Key: someKey Cas: 0 Exp: 3600 Flags: 512 Data Length: 1, topWop=null, toWrite=0, interested=1} java.io.IOException: Disconnected unexpected, will reconnect. at net.spy.memcached.MemcachedConnection.handleReads(MemcachedConnection.java:452) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:380) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:242) at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:833) 2012-06-14 17:58:31.428 WARN net.spy.memcached.MemcachedConnection: Closing, and reopening {QA sa=/127.0.0.1:11211, #Rops=1, #Wops=0, #iq=1, topRop=Cmd: 1 Opaque: 1 Key: someKey Cas: 0 Exp: 3600 Flags: 512 Data Length: 1, topWop=null, toWrite=0, interested=1}, attempt 0. 2012-06-14 17:58:31.428 WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl: Discarding partially completed op: Cmd: 1 Opaque: 1 Key: someKey Cas: 0 Exp: 3600 Flags: 512 Data Length: 1 2012-06-14 17:58:31.444 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for someKey. 2012-06-14 17:58:33.444 INFO net.spy.memcached.MemcachedConnection: Reconnecting {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=1, #iq=0, topRop=null, topWop=Cmd: 0 Opaque: 3 Key: someKey, toWrite=0, interested=0} 2012-06-14 17:58:33.444 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@1813fac Exception in thread "main" net.spy.memcached.OperationTimeoutException: Timeout waiting for value at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1003) at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1018) at ballydev.Memcache.main(Memcache.java:29) Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: /127.0.0.1:11211 at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:93) at net.spy.memcached.internal.GetFuture.get(GetFuture.java:62) at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:997) ... 2 more** **2012-06-14 17:58:31.412 INFO net.spy.memcached.memcached连接:添加了{QA sa=/127.0.0.1:11211、#Rops=0、#Wops=0、#iq=0、topRop=null、topWop=null、toWrite=0、INTERGED=0}来连接队列 2012-06-14 17:58:31.428 INFO net.spy.memcached.memcached连接:sun.nio.ch的连接状态已更改。SelectionKeyImpl@1621e42 2012-06-14 17:58:31.428 INFO net.spy.memcached.memcached连接:由于{QA sa=/127.0.0.1:11211,#Rops=1,#Wops=0,#iq=0,topRop=Cmd:1不透明:1键:someKey Cas:0 Exp:3600标志:512数据长度:1,topWop=null,toWrite=0,interest=1} java.io.IOException:断开连接意外,将重新连接。 位于net.spy.memcached.MemcachedConnection.handleReads(MemcachedConnection.java:452) 位于net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:380) 位于net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:242) 在net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:833) 2012-06-14 17:58:31.428 WARN net.spy.memcached.memcached连接:关闭并重新打开{QA sa=/127.0.0.1:11211,#Rops=1,#Wops=0,#iq=1,topRop=Cmd:1不透明:1键:someKey Cas:0 Exp:3600标志:512数据长度:1,topWop=null,toWrite=0,interest=1},尝试0。 2012-06-14 17:58:31.428 WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl:丢弃部分完成的op:Cmd:1不透明:1键:someKey Cas:0 Exp:3600标志:512数据长度:1 2012-06-14 17:58:31.444警告net.spy.memcached.memcached连接:无法重新分发到另一个节点,正在为某个密钥重试主节点。 2012-06-14 17:58:33.444 INFO net.spy.memcached.memcached连接:重新连接{QA sa=/127.0.0.1:11211,#Rops=0,#Wops=1,#iq=0,topRop=null,topWop=Cmd:0不透明:3键:someKey,toWrite=0,interest=0} 2012-06-14 17:58:33.444 INFO net.spy.memcached.memcached连接:sun.nio.ch的连接状态已更改。SelectionKeyImpl@1813fac 线程“main”net.spy.memcached.OperationTimeoutException中出现异常:等待值的超时 位于net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1003) 位于net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1018) 位于ballydev.Memcache.main(Memcache.java:29) 原因:net.spy.memcached.internal.CheckedOperationTimeoutException:等待操作超时-失败节点:/127.0.0.1:11211 net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:93) 位于net.spy.memcached.internal.GetFuture.get(GetFuture.java:62) 位于net.spy.memcached.MemcachedClient.get(MemcachedClient.java:997) ... 还有两个**
有人有什么想法或建议吗。。请回复…

等待操作超时-失败节点:/127.0.0.1:11211

这意味着你的memcached绑定到了其他地址,或者它没有启动。

对不起,我的机器出现了一些问题,这就是为什么我在运行一个简单代码时遇到这么多问题的原因。但当我试着用另一个盒子并使用它的IP-den时,效果很好…:)


谢谢大家带着这个…

如何知道它绑定到哪个地址??我已从服务本身启动服务器。。。所以我希望它能启动..你是否像操作系统一样使用unix?这对你很有用不,我使用的是windows xp。你是如何在windows中安装memcached的?你可以解释你的问题,它可以帮助其他人;)到目前为止,我还无法找到具体的问题,但这不仅仅是我的系统,当我尝试在其他一些系统上运行memcached时,它也发生在这些系统上。就我所知,原因可能是他们中的任何一个:*1.TCP端口11211可能被其他进程使用或被防火墙阻止。2.可能是安装的memcached二进制文件不支持windows当前版本。但是,由于这些解决方案确实对我有帮助,我希望在尝试这些解决方案之后,人们能够在自己身上进行更多的尝试**在这种情况下,请始终尝试telnet等命令,例如telnet 127.0.0.1 11211。这将解释memcached服务器是否实际启动/工作。