redis运用连接池报错解决

redis使用连接池报错解决
redis使用十几小时就一直报异常

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
    at redis.clients.util.Pool.getResource(Pool.java:22)
    at com.derbysoft.jredis.longkeytest.BorrowObject.run(BorrowObject.java:22)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)
    at redis.clients.util.Pool.getResource(Pool.java:20)  

原因是没有回收资源导致
正确的做法是

ShardedJedis jedis = shardedJedisPool.getResource();
try {
    jedis.set(key, value);
} finally {
    shardedJedisPool.returnResource(jedis);
}
时间: 2024-11-10 11:29:55

redis运用连接池报错解决的相关文章

连接池报错 Proxool Provider unable to load JAXP configurator file: proxool.xml

上篇博文讲到简易配置 proxool 连接池:http://www.cnblogs.com/linnuo/p/7232380.html 由于把说明注释留在了 proxool.xml 配置文件里导致配置后报错,原因如下: hibernate.cfg.xml 代码片段: <session-factory> <property name="show_sql">true</property> <property name="generate_

Zabbix 监控 tomcat 连接池(报错org.archive.jmx.Client ...is not a registered bean)

Zabbix 监控 tomcat 连接池 一.     前言 领导提出需求,需要监控tomcat的连接池,之前已经通过zabbix监控了jvm(关于jvm监控这部分,后续补上).在网上找了很多教程,经历了很多坑,不过还是要感谢那些帮助过我的人,踩着坑搞出来,也是记忆犹新呀. 二.     基础环境 操作系统:Centos 6.8 Jdk:1.8.0_77(jdk最好是1.7及以上) Tomcat:7.0.69 Zabbix:3.0.3 三.     环境部署 (一)         Zabbix

java连接MongoDB报错解决

报错内容 com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=127.0.0.1:27017, type=UNKN

.net连接oracle报错解决

错误代码:尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行. 开发环境:win10(64位).vs2019(32位).Oracle(64位). 报错原因:默认vs2019环境下,IIS Express以32位方式运行,导致连接64位版本的oracle引发报错. 解决方法:vs2019菜单栏中选择菜单,工具 >选项 >web项目中,勾选”对网站和项目使用IIS Express 的64

ssh 或 putty 连接linux报错解决方法

由于当天多次输入错误密码,ssh和putty就连接不上了,纠结了很久解决问题 ssh连接提示错误:server unexpectedly closed network connection putty 连接提示错误 问题原因是:服务器安装了Denyhosts,会周期性的扫描/var/log/auth.log,找出通过ssh反复失败访问系统的行为来源然后将他们添加到/etc/hosts.deny中禁止这些ip连接,解决方式:删除/etc/hosts.deny中的自己的ip记录,重启ssh,命令se

redis部分配置与报错解决

redis在linux端配置: 解压文件:tar -zxvf redis-3.0.7.tar.gz 到解压缩目录下编译文件:make 安装redis到linux:make install PREFIX=redis路径 设置后台运行:在redis.conf中配置参数"daemonize=yes" 设置redis链接验证:requirepass pwd 启动redis服务:./redis.server redis.conf 停止redis服务(杀死redis进程):kill -9 进程id

远程连接Windows Server 2012 R2虚拟机报错解决方法

前两天在公司通过TeamViewer连回家里做实验时发现,连到某一台二代虚机时登陆会弹出一个错误提示,内容如下: 经过测试发现,只要是切换到普通模式(非增强模式)就可以正常登陆进系统,但是只要切换到特权模式就会出现这样的错误,开始以为是远程登陆的错误,查看后发现远程连接一切正常,权限方面也已经加进去了,那为什么增强模式下登陆就会出错呢? 在组策略里找了找也没发现答案,之后突然惊觉这个账户并不是本地的管理员,也不在域管理员组里,只是一个普通用户,是不是因为这点呢?运行管理员权限的命令提示符之后.输

1130 - Host&#39;xxx.xxx.xxx.xxx&#39; is not allowed to connect to this MySQL server解决Navicat连接MySQL报错

最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示"1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server".解决办法如下: 方法/步骤 首先看报错窗口. 经查阅,错误原因是:本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限. 于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql数据库的访问权限. 首先远程连接进入服务器,在

连接mysql报错Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)解决办法

1.打开MySQL目录下的my.ini文件,在文件的最后添加一行"skip-grant-tables"(免密码登录),保存并关闭文件,重启MySQL服务. 2.通过命令行进入MySQL的BIN目录,输入"mysql -u root -p"(不输入密码),回车即可进入数据库. 3.执行"use mysql;",使用mysql数据库. 4.修改密码:执行" update MySQL.user set authentication_strin