报错内容
Caused by: java.lang.NumberFormatException: For input string: "6379@13028"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at redis.clients.util.ClusterNodeInformationParser.getHostAndPortFromNodeLine(ClusterNodeInformationParser.java:39)
at redis.clients.util.ClusterNodeInformationParser.parse(ClusterNodeInformationParser.java:14)
at redis.clients.jedis.JedisClusterInfoCache.discoverClusterNodesAndSlots(JedisClusterInfoCache.java:50)
at redis.clients.jedis.JedisClusterConnectionHandler.initializeSlotsCache(JedisClusterConnectionHandler.java:39)
...
可能原因
Jedis 2.8
版本及以下引入了ClusterNodeInformationParser
来解析cluster slots
返回值,但是Redis
后续更改了此命令返回值类型,所以解析报错NumberFormatException
。
建议方法
升级 Jedis 版本到2.9.0
。