当前位置: 首页 > 工具软件 > Spymemcached > 使用案例 >

java spymemcached_java – 操作完成后Spymemcached挂起

司徒焕
2023-12-01

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

memcached -m 4096 -p 11211 -u memcache -l 127.0.0.1 -d -vvv

我正在使用以下驱动程序将一些键/值对放入Memcache.出于某种原因,在最后一次get操作之后,main函数才会挂起;它永远不会终止.

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;

}

}

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

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.

服务器报告以下状态:

<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

什么问题可能导致主函数永不终止?有没有人有什么建议?

解决方法:

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

c.shutdown(…)

这些例子都不包括这一关键步骤.

标签:java,memcached,hang,spymemcached

来源: https://codeday.me/bug/20190610/1209034.html

 类似资料: