Jedis: java.lang.NumberFormatException: For input string: “6379@13028“

Posted 杨博东的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jedis: java.lang.NumberFormatException: For input string: “6379@13028“相关的知识,希望对你有一定的参考价值。

报错内容

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

GitHub相关

https://github.com/redis/jedis/issues/1958

https://issues.apache.org/jira/browse/BAHIR-306

以上是关于Jedis: java.lang.NumberFormatException: For input string: “6379@13028“的主要内容,如果未能解决你的问题,请参考以下文章

Jedis操作Redis

jedis操作redis

什么是Jedis?

Jedis 源代码阅读一 —— Jedis

Redis客户端——Jedis的使用

Jedis笔记