jedis pool的问题

在使用jedis pool时遇到了这个问题:It seems like server has closed the connection

原因分析:

1.redis server 关闭了此客户端的连接:server端设置了maxidletime(默认是5分钟),服务端会不断循环检测clinet的最后一次通信时间(lastinteraction),如果大于maxidletime,则关闭连接,并回收相关资源。client在向该连接中写数据后就会由于server端已经关闭而出现 broken pipe的问题。

2.pool的设置错误:

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">        <property name="maxActive"  value="20" />        <property name="maxIdle" value="10" />        <property name="maxWait" value="1000" />    </bean><!-- jedis shard信息配置 -->    <bean id="jedis.shardInfo" class="redis.clients.jedis.JedisShardInfo">        <constructor-arg index="0" value="*.*.*.*" />        <constructor-arg index="1" value="6379" />    </bean>

    <!-- jedis shard pool配置 -->    <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">        <constructor-arg index="0" ref="jedisPoolConfig" />        <constructor-arg index="1">            <list>                <ref bean="jedis.shardInfo" />            </list>        </constructor-arg>    </bean>

    <bean id="jedisCommands" factory-bean="shardedJedisPool"        factory-method="getResource" />

上面的这种配法在spring初始化时获取一次实例化jedisCommands,而后每次的redis的调用时并未从pool中获取

解决方案:

设置

<!-- POOL配置 -->    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">        <property name="maxActive"  value="20" />        <property name="maxIdle" value="10" />        <property name="maxWait" value="1000" />        <property name="testOnBorrow"  value="true"/>    </bean>

    <!-- jedis shard信息配置 -->    <bean id="jedis.shardInfo" class="redis.clients.jedis.JedisShardInfo">        <constructor-arg index="0" value="*.*.*.*" />        <constructor-arg index="1" value="6379" />    </bean>

    <!-- jedis shard pool配置 -->    <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">        <constructor-arg index="0" ref="jedisPoolConfig" />        <constructor-arg index="1">            <list>                <ref bean="jedis.shardInfo" />            </list>        </constructor-arg>    </bean>

参考: 
http://stackoverflow.com/questions/3047010/best-redis-library-for-java 
https://github.com/xetorthio/johm

https://github.com/xetorthio/jedis/issues/closed#issue/76

jedis pool的问题相关推荐

  1. _00021 尼娜抹微笑伊拉克_谁的的最离奇的异常第二阶段 Jedis pool.returnResource(jedis)...

    笔者博文:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 博文标题:_00021 妳那伊抹微笑_谁的异常最诡异第二期之 Jedis pool.returnRes ...

  2. spring boot 集成 redis spring-boot-starter-data-redis 2.1.7.RELEASE jedis: pool: #连接池配置 及踩坑经验

    目录 先上一些踩坑报错,各类报错 @org.springframework.beans.factory.annotation.Autowired(required=true) Error creati ...

  3. Jedis使用教程完整版

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:概述Jedis是Redis官方推荐的Java连接开发工具.要在Java开发中使用好Redis中间件,必须对Jedis熟悉 ...

  4. 多线程下使用Jedis

    在不同的线程中使用相同的Jedis实例会发生奇怪的错误. 但是创建太多的实现也不好因为这意味着会建立很多sokcet连接,也会导致奇怪的错误发生. 单一Jedis实例不是线程安全的. 为了避免这些问题 ...

  5. jedis连接sentinel示例程序

    1.添加依赖pom.xml <dependency><groupId>redis.clients</groupId><artifactId>jedis& ...

  6. Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson

    文章目录 官网 Jedis VS Lettuce Jedis Code POM依赖 配置文件 配置类 单元测试 Lettuce Code Redisson Code POM依赖 配置文件 配置类 单元 ...

  7. Jedis干什么用的

    Jedis使用总结 前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现. 本文做个总结,主要分享如下内容: [pipeline][分布式的id生成器][分布式锁[w ...

  8. redis java客户端配置,Java的Redis客户端选择-jedis与Lettuce

    Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接连接redis server. Jedis在实现上是直接连接的redis server,如果在多线程环境下是非线 ...

  9. jedis使用_Mybatis的二级缓存、使用Redis做二级缓存

    什么是二级缓存? 二级缓存和一级缓存的原理是一样的,第一次查询,会将数据放入缓存中,然后第二次查询则会直接去缓存中取.但是一级缓存是基于的sqlSession,而二级缓存是基于mapper文件的nam ...

  10. java代码简单操作Redis数据Jedis jar

    java操作Redis数据API->Jedis Jedis引入 作为java码农,如何在代码中操作Redis呢? Jedis的介绍 Redis不仅可以使用命令来操作,现在基本上主流的语言都有AP ...

最新文章

  1. 路径字符串生成树形结构的思路_LeetCode 22. 括号生成
  2. php 会话控制 文件上传
  3. Linux下CMake简明教程(六)动态库和静态库的编译控制
  4. python venv windows7_安装 Python、pip 和 venv
  5. 解决-bash: make: command not found安装提示错误
  6. vue加百度统计代码(亲测有效)
  7. 三、华为鸿蒙HarmonyOS应用开发HUAWEI DevEco Studio实现页面跳转
  8. Drupal 7 主题模板概述
  9. bat 指定每一周的某一天(比如周五) 执行某一程序(比如飞鸽)
  10. Rabbitmq基本原理和架构
  11. 如何生成CGCS2000坐标系等高线
  12. win10如何开启自带虚拟机
  13. 清华EMBA课程系列思考之一 -- Techmark课程带给管理者的思考
  14. 用Pytorch自建6层神经网络训练Fashion-MNIST数据集,测试准确率达到 92%
  15. 魔兽7.0服务器维护时间,关于魔兽7.0版本你一定要知道的60条注意事项
  16. MPP大规模并行处理架构详解(满满干货,需细嚼慢咽)
  17. 银行业务学习之道:信用卡的具体功能
  18. mshtml与System.Windows.Forms.HtmlElement
  19. SQL Server 2008 简体中文正式版下载地址(附序列号)
  20. DROO memory.py

热门文章

  1. 仿网易严选Flutter项目
  2. 邯郸php,邯郸php程序员培训,邯郸php程序员培训费用,邯郸php程序员培训完工作好找吗...
  3. ISP封了80和8080端口
  4. linux卸载windows boot,windows和Linux双系统卸载Linux系统
  5. canvas绘制五角星
  6. 世界33种名车标志及来历
  7. 计算机管理调整磁盘分区,win7系统硬盘分区调整方法图解
  8. android8 锁屏壁纸,小米8怎么设置锁屏壁纸?小米8锁屏壁纸三种设置教程
  9. 携程:电子合同高效赋能数字文旅
  10. 一键智能切割(分割)整轨wav、flac、ape音乐文件