使用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异常怎么办呐!相关推荐

  1. redis使用中经常出现 Could not get a resource from the pool 异常,解决办法总结

    背景: 最近使用jedis(redis)开发一项功能,查阅日志发现,服务运行一段时间之后,就会出现 redis.clients.jedis.exceptions.JedisException: Cou ...

  2. 如果redis哨兵宕机了怎么办_Spring集成Redis做缓存,Redis宕机时Spring处理的问题

    采用的是Spring自带的缓存管理,使用Redis做缓存,在Spring中配置如下 @Configuration @EnableCaching public class CachingConfig { ...

  3. SpringBoot集成Redis和配置Redis做缓存

    Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...

  4. springboot整合redis做缓存

    之前的项目中,用到过redis,主要是使用redis做缓存,redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,得益于redis的读写数据,尤其是在读取数据的时 ...

  5. 9.redis 做缓存

    全网最新相关内容 标题-链接 发布日期 简介 来源 轻松理解redis做缓存的流程_小浩丶的博客-CSDN博客_redis ... 2022-4-5 22:59:03 1. 引言 缓存有啥用?降低对数 ...

  6. 解决Redis问题:JedisConnectionException: Could not get a resource from the pool

    1.问题描述: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the p ...

  7. SpringBoot集成Shiro前后端分离使用redis做缓存

    文章目录 一 .shiro介绍 1.基础介绍 2.基本功能点 3.基本流程图 二. 常用的权限管理表关系 2.1. 表组成 2.2. 表结构 三.实战案例 3.1. 案例介绍 3.2. 依赖 3.3. ...

  8. python使用redis做缓存_python实现类redis缓存

    越来越觉得的缓存是计算机科学里最NB的发明(没有之一), 现在项目用的是redis做的缓存, 它的两个特性用的蛮顺手的: 键值查找功能 缓存可设置过期时间 突突然的,觉得用python也可以简单的模拟 ...

  9. 22-08-06 西安 尚医通(03)EasyExcel; Spring Cache 、Redis做缓存

    EasyExcel EasyExcel:一行一行读取到内存 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单.节省内存著称 POI:java里操作excel,读取.创建excel ...

最新文章

  1. python string 转bytes 以及bytes 转string
  2. uml具有多种视图_UML建模与架构文档化
  3. HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)
  4. .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理
  5. android socket 长连接_TCP/IP,http,socket,长连接,短连接
  6. 【读书笔记】《Javascript语言精粹》
  7. 关于php的函数,总结关于PHP文件函数有哪些
  8. 什么都懂, 为什么没有业绩?
  9. 一个简单的EXCEL 导入SQL 的例子
  10. 16.进程间的通信:管道
  11. 2021-01-16 SONiC系统管理10 Telemetry
  12. npm cb() never called!和 Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443
  13. 冯诺依曼体系结构 —(收藏版)
  14. TextView.setText()为什么会出错
  15. 蓝魔法师——树形DP
  16. python基础(大数据)[完结]
  17. 插图 引用 同一行两个插图_案例研究产品设计中的动画插图
  18. 中标麒麟V7.0-x64版本安装QT
  19. 在虚拟机中怎么查看服务器的ip,虚拟机里Centos7的IP地址查看方法
  20. Arduino 外部中断

热门文章

  1. 小汤学编程之MySQL(三)——约束、多表查询、事务和数据库其他操作
  2. 微软职位内部推荐-SW Engineer II for Skype
  3. Matcher类:(转)
  4. PHP 读取JSON数据
  5. WCF读取配置动态生成客户端对象
  6. Flutter设置允许HTTP访问
  7. Android疯狂ListView之旅 第一季 《侧滑删除条目》
  8. Windows Vista for Developers——第二部分:深入分析任务对话框
  9. 算法题---最长公共前缀
  10. java中的装箱及拆箱