首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redisTemplate.executePipelined能引起SocketTimeOut吗?

redisTemplate.executePipelined能引起SocketTimeOut吗?
EN

Stack Overflow用户
提问于 2020-08-24 02:10:24
回答 1查看 750关注 0票数 0

这是我的密码:

代码语言:javascript
复制
redisTemplate.executePipelined(new SessionCallback<Object>() {
    @Override
    public Object execute(RedisOperations redisOperations) throws DataAccessException {
        redisTemplate.opsForSet().add(e, businessCode);
        return null;
    }
});

内部代码“redisTemplate.opsForSet().add(e,businessCode);”是使用one 连接吗?

谢谢你的回答

补充堆栈错误信息:

代码语言:javascript
复制
org.springframework.data.redis.RedisConnectionFailureException: java.net.SocketTimeoutException: Read timed out; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
    at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:67)
    at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:41)
    at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:37)
    at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:37)
    at org.springframework.data.redis.connection.jedis.JedisConnection.convertJedisAccessException(JedisConnection.java:241)
    at org.springframework.data.redis.connection.jedis.JedisConnection.zRange(JedisConnection.java:2348)
    at org.springframework.data.redis.connection.DefaultStringRedisConnection.zRange(DefaultStringRedisConnection.java:1058)
    at org.springframework.data.redis.core.DefaultZSetOperations$5.doInRedis(DefaultZSetOperations.java:101)
    at org.springframework.data.redis.core.DefaultZSetOperations$5.doInRedis(DefaultZSetOperations.java:98)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:207)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169)
    at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:91)
    at org.springframework.data.redis.core.DefaultZSetOperations.range(DefaultZSetOperations.java:98)
    at com.*.mshop.reach.service.impl.ReachServiceImpl.query(ReachServiceImpl.java:178)
    at com.*.mshop.reach.service.impl.ReachServiceImpl$$FastClassBySpringCGLIB$$633d23e1.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:667)
    at com.*.mshop.reach.service.impl.ReachServiceImpl$$EnhancerBySpringCGLIB$$486aa953.query(<generated>)
    at com.*.mshop.facade.controller.ReachControllerImpl.query$original$1525E0bP(ReachControllerImpl.java:174)
    at com.*.mshop.facade.controller.ReachControllerImpl.query$original$1525E0bP$accessor$dcQnJrPQ(ReachControllerImpl.java)
    at com.*.mshop.facade.controller.ReachControllerImpl$auxiliary$jZ0njKo2.call(Unknown Source)
    at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86)
    at com.*.mshop.facade.controller.ReachControllerImpl.query(ReachControllerImpl.java)
    at com.*.mshop.facade.controller.ReachControllerImpl.queryCommodity$original$1525E0bP(ReachControllerImpl.java:203)
    at com.*.mshop.facade.controller.ReachControllerImpl.queryCommodity$original$1525E0bP$accessor$dcQnJrPQ(ReachControllerImpl.java)
    at com.*.mshop.facade.controller.ReachControllerImpl$auxiliary$NkOmWqfY.call(Unknown Source)
    at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86)
    at com.*.mshop.facade.controller.ReachControllerImpl.queryCommodity(ReachControllerImpl.java)
    at com.*.mshop.facade.controller.ReachControllerImpl$$FastClassBySpringCGLIB$$c8f1c1b6.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

在这个名为executePipelined的异常之前,大约1分钟,就没有红线连接了。

redis连接池配置:

代码语言:javascript
复制
spring.redis.pool.max-active = 2000
spring.redis.pool.max-wait = 5000
spring.redis.pool.max-idle = 200
spring.redis.pool.min-idle = 10
spring.redis.timeout = 0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-24 14:18:03

Redis管道对于Jedis和生菜有不同的工具。

在Jedis中,管道将阻塞1连接,并将所有管道命令与相同的连接(Bio)一起发送。

在莴苣中,管道使用Netty作为网络连接工具。因此,在客户端执行管道期间,它不会阻塞连接(通常,莴苣将使用单个连接)。当管道执行(发送到Redis)时,它将从Netty中选择1个连接。

两个库对管道命令使用相同的连接,因为它们将在一个网络请求中将所有命令一起发送。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63553886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档