在redis中使用opsForHash.scan()时出现ClassCastException

时间:2016-06-28 14:55:55

标签: spring redis spring-data classcastexception jedis

  

当我尝试扫描大量键时发生ClassCastException   使用opsForHash.scan()方法。我正在使用Jedis 2.6.2而且我面对这个问题   仅当要搜索的键数量很大(~100,000)时才会出错。   我已经在线阅读了这个问题的解决方案,其中大多数是   建议由于连接池而出现问题。

我在我的项目中使用Spring集成,并将use-pool属性设置为true(在JedisConnectionFactory中),即使它是默认选项。 由于春天应该用redis来管理连接,为什么我还有这个问题呢? 请建议。

enter image description here

这是我正在使用的Spring配置文件:

enter image description here

这是我执行scan()的java代码: enter image description here

1 个答案:

答案 0 :(得分:1)

我有同样的问题。在互联网上搜索了很多,我发现问题是由于连接池问题而发生的。正如您所提到的,您已在弹簧配置中将use-pool设置为true。 我通过将池设置为false来传递此问题。事实证明,我并不需要合并,之后问题就不会发生。 如果您不明确需要汇集,可以尝试此解决方案。 以下是代码段:

<bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:hostName="" p:port="6379" p:usePool="false" /> 

希望它有所帮助!