使用redis做缓存,遇到Could not return the resource to the pool异常怎么办呐!
使用redis做缓存,短短几天就遇到两次redis.clients.jedis.exceptions.JedisException: Could not return the resource to the pool异常,内心处在奔溃边缘!
第一次
由于我的redis是安装在远程阿里云服务器上的,但我事先没有在redis.conf配置文件中做相关配置,导致连接不上redis服务,具体操作可查看 : 项目部署—连接不上远程redis服务怎么办?
第二次
问题:项目跑在阿里云服务器上,项目正常运行!但每当访问多几次后,就会开始报这个异常啦!但重启redis服务后,发现又可以正常访问了!继续访问一段时间后,又会出现同样的问题。
原因:调用jedis连接后,未及时释放连接,造成资源占用,连接池无连接可用,自然就无法从连接池中获取连接资源啦。
/*** 根据key名,获取其存储数据* @param key* @return*/
public String get(String key){String value = null;try{//获取指定key的存储数据value = jedis.get(key);}catch (Exception e){e.printStackTrace();}return value;}/*** 添加记录,如果记录已存在则覆盖原有的value* @param key* @param value* @return*/
public String set(String key,String value){String state = null;try{//设置指定key的存储数据state = jedis.set(key,value);}catch (Exception e){e.printStackTrace();}return state;}
解决:添加jedis.close()操作,释放连接,然后再重启redis服务,问题解决啦
/*** 根据key名,获取其存储数据* @param key* @return*/
public String get(String key){String value = null;try{//获取指定key的存储数据value = jedis.get(key);}catch (Exception e){e.printStackTrace();}finally {//关闭jedis连接,避免资源占用,造成连接池无连接可用jedis.close();}return value;
}/*** 添加记录,如果记录已存在则覆盖原有的value* @param key* @param value* @return*/
public String set(String key,String value){String state = null;try{//设置指定key的存储数据state = jedis.set(key,value);}catch (Exception e){e.printStackTrace();}finally {//关闭jedis连接,避免资源占用,造成连接池无连接可用jedis.close();}return state;
}
查看redis连接池连接数的命令:info clients
106.13.202.401:6379> info clients
# Clients
connected_clients:12
client_recent_max_input_buffer:4
client_recent_max_output_buffer:0
blocked_clients:0
106.13.202.401:6379>
由以上信息可知当前连接池连接数为12
使用redis做缓存,遇到Could not return the resource to the pool异常怎么办呐!相关推荐
- redis使用中经常出现 Could not get a resource from the pool 异常,解决办法总结
背景: 最近使用jedis(redis)开发一项功能,查阅日志发现,服务运行一段时间之后,就会出现 redis.clients.jedis.exceptions.JedisException: Cou ...
- 如果redis哨兵宕机了怎么办_Spring集成Redis做缓存,Redis宕机时Spring处理的问题
采用的是Spring自带的缓存管理,使用Redis做缓存,在Spring中配置如下 @Configuration @EnableCaching public class CachingConfig { ...
- SpringBoot集成Redis和配置Redis做缓存
Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...
- springboot整合redis做缓存
之前的项目中,用到过redis,主要是使用redis做缓存,redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,得益于redis的读写数据,尤其是在读取数据的时 ...
- 9.redis 做缓存
全网最新相关内容 标题-链接 发布日期 简介 来源 轻松理解redis做缓存的流程_小浩丶的博客-CSDN博客_redis ... 2022-4-5 22:59:03 1. 引言 缓存有啥用?降低对数 ...
- 解决Redis问题:JedisConnectionException: Could not get a resource from the pool
1.问题描述: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the p ...
- SpringBoot集成Shiro前后端分离使用redis做缓存
文章目录 一 .shiro介绍 1.基础介绍 2.基本功能点 3.基本流程图 二. 常用的权限管理表关系 2.1. 表组成 2.2. 表结构 三.实战案例 3.1. 案例介绍 3.2. 依赖 3.3. ...
- python使用redis做缓存_python实现类redis缓存
越来越觉得的缓存是计算机科学里最NB的发明(没有之一), 现在项目用的是redis做的缓存, 它的两个特性用的蛮顺手的: 键值查找功能 缓存可设置过期时间 突突然的,觉得用python也可以简单的模拟 ...
- 22-08-06 西安 尚医通(03)EasyExcel; Spring Cache 、Redis做缓存
EasyExcel EasyExcel:一行一行读取到内存 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单.节省内存著称 POI:java里操作excel,读取.创建excel ...
最新文章
- python string 转bytes 以及bytes 转string
- uml具有多种视图_UML建模与架构文档化
- HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)
- .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理
- android socket 长连接_TCP/IP,http,socket,长连接,短连接
- 【读书笔记】《Javascript语言精粹》
- 关于php的函数,总结关于PHP文件函数有哪些
- 什么都懂, 为什么没有业绩?
- 一个简单的EXCEL 导入SQL 的例子
- 16.进程间的通信:管道
- 2021-01-16 SONiC系统管理10 Telemetry
- npm cb() never called!和 Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443
- 冯诺依曼体系结构 —(收藏版)
- TextView.setText()为什么会出错
- 蓝魔法师——树形DP
- python基础(大数据)[完结]
- 插图 引用 同一行两个插图_案例研究产品设计中的动画插图
- 中标麒麟V7.0-x64版本安装QT
- 在虚拟机中怎么查看服务器的ip,虚拟机里Centos7的IP地址查看方法
- Arduino 外部中断