我一直无法在 Amazon Cloud 上找到有关 Memcached 的好教程,而且我对整个缓存的事情还很陌生。我正在尝试通过 Amazon 的 ElastiCache 服务和 spymemcached 客户端使用 memcached 来实际进行 memcached 调用。
这是我现在在 Java 中所做的事情:
try {
ConnectionFactoryBuilder connectionFactoryBuilder = new ConnectionFactoryBuilder();
MemcachedClient memcachedClient = new MemcachedClient(
connectionFactoryBuilder.build(),
AddrUtil.getAddresses("<beginning of cache node end point grabbed from AWS Console>.cache.amazonaws.com:11211"));
memcachedClient.set("test", 12, new Integer(12));
System.out.println(memcachedClient.get("test"));
} catch (IOException ioException) {
ioException.printStackTrace();
}
我尝试这个时得到的错误是:
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:414)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:278)
at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:1981)
2012-02-01 19:25:35.415 WARN net.spy.memcached.MemcachedConnection: Closing, and reopening {QA sa=<node endpoint>.cache.amazonaws.com/184.73.64.56:11211, #Rops=0, #Wops=2, #iq=0, topRop=null, topWop=net.spy.memcached.protocol.ascii.StoreOperationImpl@be8c3e, toWrite=0, interested=0}, attempt 1.
net.spy.memcached.OperationTimeoutException: Timeout waiting for value
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1142)
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1157)
at com.amazon.imaging.demo.SQSQueueManager.requeue(SQSQueueManager.java:117)
at com.amazon.imaging.demo.SQSQueueManager.requeue(SQSQueueManager.java:88)
at com.amazon.imaging.demo.DemoUI$4.run(DemoUI.java:368)
at com.amazon.imaging.demo.DemoUI.main(DemoUI.java:391)
Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: <node endpoint>.cache.amazonaws.com/184.73.64.56:11211
at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:65)
at net.spy.memcached.internal.GetFuture.get(GetFuture.java:37)
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1135)
... 5 more
有人对此有任何想法或经验吗?谢谢!