I'm having problems completing an .hgetall()
, here's what I've tried:
Jedis jedis = new Jedis(REDIS_MASTER_NODE);
jedis.connect();
jedis.configSet("timeout", "30");
Map<String, String> alreadyStored = jedis.hgetAll(redisTargetHash);
and here's what I get:
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
at redis.clients.jedis.Protocol.process(Protocol.java:79)
at redis.clients.jedis.Protocol.read(Protocol.java:131)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:199)
at redis.clients.jedis.Jedis.hgetAll(Jedis.java:851)
This solved the issue:
Jedis jedis = new Jedis(REDIS_MASTER_NODE, 6379, 1800);
If what you want to do is set Jedis connection timeout
, you should do it using the special constructor made for that:
public Jedis(final String host, final int port, final int timeout)
What you are doing is setting the timeout on redis settings from jedis
. Doing CONFIG SET timeout 60
, means that redis will close idle client connections after 60
seconds. That's why you get the exception in Jedis.