Setting up Amazon ElastiCache with spymemcached in Java

I was unable to find a good memcached tutorial on Amazon Cloudand. I am very new to this caching. I am trying to use memcached through the Amazon ElastiCache service and using the spymemcached client to actually make memcached calls.

Here is what I am doing now in 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(); } 

The error I get when trying:

 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@be8c3 e, 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 

Anyone have any ideas or experience? Thanks!

+7
source share
1 answer

Where are you doing this? From using an EC2 instance or from an external network. Remember that ElastiCache servers are linked by a security group that restricts access to ElastiCAche instances. Therefore, check the security group and other configurations that allow you to connect to the Memcached server. As far as I know, ElastiCache cannot be accessed from abroad AWS

The rest of the code looks great and cConsider uses a framework like Spring to process the memcache client object instance and the corresponding configuration.

+2
source

All Articles