开发者社区> 问答> 正文

spring-redis报broken pipe错误?报错

如题,启动项目后,过个10几分钟就报错:

    org.springframework.data.redis.RedisConnectionFailureException: 

        java.net.SocketException: Broken pipe; 

        nested exception is redis.clients.jedis.exceptions.JedisConnectionException:             java.net.SocketException: Broken pipe。。。。。

版本:spring-data-redis-1.7.1.RELEASE.jar,jedis-2.8.1.jar(jedis-2.4.2.jar也试过)

配置xml为

 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">  
        <property name="maxIdle" value="5" />  
        <property name="maxTotal" value="10" />  
        <property name="testOnBorrow" value="true" /> 
    </bean>  
      
    <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"  p:timeout="10000"
        p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}"  p:pool-config-ref="poolConfig"/>  
        
    <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">  
        <property name="connectionFactory"   ref="connectionFactory" /> 
        <property name="enableTransactionSupport" value="${redis.transactionSupport}" />
    </bean>     

参考网上的换版本等解决方法,都没有解决问题,求高手解惑

展开
收起
爱吃鱼的程序员 2020-06-09 12:41:58 1798 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你看一下你的这个spring-redis的spring依赖版本依赖应该都是可以的,我下面再贴了一段错误信息,你可以看看设置了回滚的问题?

    我看了一下maven仓库,这个版本最低依赖jedis-client2.8.1

    http://mvnrepository.com/artifact/org.springframework.data/spring-data-redis/1.7.1.RELEASE

    org.springframework.data.redis.RedisConnectionFailureException:java.net.SocketException:Brokenpipe;nestedexceptionisredis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:Brokenpipe
        atorg.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:67)
        atorg.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:41)
        atorg.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:37)
        atorg.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:37)
        atorg.springframework.data.redis.connection.jedis.JedisConnection.convertJedisAccessException(JedisConnection.java:212)
        atorg.springframework.data.redis.connection.jedis.JedisConnection.hMGet(JedisConnection.java:2970)
        atorg.springframework.data.redis.connection.DefaultStringRedisConnection.hMGet(DefaultStringRedisConnection.java:400)
        atsun.reflect.GeneratedMethodAccessor45.invoke(UnknownSource)
        atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        atjava.lang.reflect.Method.invoke(Method.java:606)
        atorg.springframework.data.redis.core.CloseSuppressingInvocationHandler.invoke(CloseSuppressingInvocationHandler.java:57)
        atcom.sun.proxy.$Proxy14.hMGet(UnknownSource)
        atcom.igen.solarman.command.dao.impl.RedisDAO$5.doInRedis(RedisDAO.java:176)
        atcom.igen.solarman.command.dao.impl.RedisDAO$5.doInRedis(RedisDAO.java:1)
        atorg.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)
        atorg.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:153)
        atorg.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:141)
        atcom.igen.solarman.command.dao.impl.RedisDAO.hMGet(RedisDAO.java:170)
        atcom.igen.solarman.command.queue.EventQueueThread.sync(EventQueueThread.java:187)
        atcom.igen.solarman.command.queue.EventQueueThread.run(EventQueueThread.java:123)
        atjava.lang.Thread.run(Thread.java:745)
    Causedby:redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:Brokenpipe
        atredis.clients.jedis.Protocol.sendCommand(Protocol.java:98)
        atredis.clients.jedis.Protocol.sendCommand(Protocol.java:78)
        atredis.clients.jedis.Connection.sendCommand(Connection.java:101)
        atredis.clients.jedis.BinaryClient.hmget(BinaryClient.java:253)
        atredis.clients.jedis.BinaryJedis.hmget(BinaryJedis.java:813)
        atorg.springframework.data.redis.connection.jedis.JedisConnection.hMGet(JedisConnection.java:2968)
        ...15more
    Causedby:java.net.SocketException:Brokenpipe
        atjava.net.SocketOutputStream.socketWrite0(NativeMethod)

    试一试不启用事务的话了?你这边最后是如何解决的最后?

    老哥你这解决了吗???我也遇见了这个问题,不知道怎么解决。求解,谢谢!

    后来没用spring去管理redis

    https://github.com/xetorthio/jedis/issues/848#issuecomment-190778916

    2020-06-09 12:42:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ApsaraDB for Redis——与创客同行 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载