首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spymemcached在操作完成后挂起

Spymemcached在操作完成后挂起
EN

Stack Overflow用户
提问于 2011-12-05 06:21:56
回答 1查看 2.2K关注 0票数 4

我正在使用Spymemcached访问服务器上的Memcached。我使用以下命令启动了memcached

代码语言:javascript
运行
复制
memcached -m 4096 -p 11211 -u memcache -l 127.0.0.1 -d -vvv

我使用下面的驱动程序将一些键/值对放到Memcache中。由于某些原因,在最后一次get操作之后,main函数就挂起了;它永远不会终止。

代码语言:javascript
运行
复制
import java.net.InetSocketAddress;
import net.spy.memcached.MemcachedClient;

public class memcache {
        public static void main(String args[]) {
                //Connect to Memcache.
                MemcachedClient c=null;
                try{   
                        c = new MemcachedClient(
                                new InetSocketAddress("127.0.0.1", 11211));
                } catch (Exception e) {
                        System.err.println("Could not connect to Memcached.");
                        System.exit(-1);
                }
                System.out.println("Connected to Memcached.");
                Object myObject = null;
                for (int i = 0; i < 10; i++)
                {
                        c.set(new String("HELLO"), 3600, i+1);
                        myObject=c.get("HELLO");
                        String value = myObject.toString();
                        System.out.println("***" + value);
                }
                System.out.println("Done.");
                return;
        }
}

我得到以下输出,但应用程序永远不会终止。

代码语言:javascript
运行
复制
2011-12-04 14:18:31.839 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
Connected to Memcached.
2011-12-04 14:18:31.844 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@578088c0
***1
Done.

服务器报告以下状态:

代码语言:javascript
运行
复制
<32 server listening (udp)
<33 new auto-negotiating client connection
33: going from conn_new_cmd to conn_waiting
33: going from conn_waiting to conn_read
33: going from conn_read to conn_parse_cmd
33: Client using the ascii protocol
<33 set HELLO 512 3600 1
33: going from conn_parse_cmd to conn_nread
> NOT FOUND HELLO
>33 STORED
33: going from conn_nread to conn_write
33: going from conn_write to conn_new_cmd
33: going from conn_new_cmd to conn_waiting
33: going from conn_waiting to conn_read
33: going from conn_read to conn_parse_cmd
<33 get HELLO
> FOUND KEY HELLO
>33 sending key HELLO
>33 END
33: going from conn_parse_cmd to conn_mwrite
33: going from conn_mwrite to conn_new_cmd
33: going from conn_new_cmd to conn_waiting
33: going from conn_waiting to conn_read

什么问题可能导致main函数永远不能终止?有人有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-05 11:37:07

解决方案很简单。完成后,客户端必须断开连接:

c.shutdown(...)

没有一个示例包括这一关键步骤。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8379053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档