8
votes

I am trying to setup ElastiCache to use with a Java Application. I have based my setup based on this documentation: https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html

The EC2 instance where the Java (8) App runs is in a VPC. I have tried an ElastiCache instance both in VPC and no VPC. However, I always got,

redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused

If I install Redis myself on an EC2 instance and connect to it, the app is able to connect to the Redis Cache!

I have setup proper authorization with Security-group from EC2 to Cache-Security but no luck. I just can't make the 'connection'. Any sample connection snippet would be really helpful.

Redis is setup this way in the APP Config:

    @Bean
    public JedisConnectionFactory redisConnectionFactory() {
    JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
    redisConnectionFactory.setHostName(<cache-node>);
    redisConnectionFactory.setPort(6397);
    redisConnectionFactory.setUsePool(true);
    redisConnectionFactory.setTimeout(3600);
    return redisConnectionFactory;
   }

The various versions:

Jedis- 2.6.2, Spring- 4.1.6, Spring-data-> 1.5.0
2
Have you resolved this issue?muhamadto
have you opened the port 6397 in security group, which you have provided to your redis instance?code_mechanic

2 Answers

1
votes
telnet redis-ip 6397

Determine if redis can be connected

0
votes
redisConnectionFactory.setPort(6397);

should probably be

redisConnectionFactory.setPort(6379); //default redis port