【Azure Redis 缓存 Azure Cache For Redis】当使用Jedis客户端连接Redis时候,遇见JedisConnectionException: Could not get a resource from the pool / Redis connection lost
问题情形
当在执行Redis一直指令时,有可能会遇见如下几种错误:
1) redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
2) redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out
3) JedisTemplate.execute - Redis connection lost.
以上三种错误,在详细的Stack Trace中,其引起的根本异常情况都是 java.net.SocketTimeoutException: Read timed out。 具体原因时在执行指令时候超时。 所以这里要从执行的命令和Redis服务器的Server Load来判断问题。
解决办法
修改Jedis的默认超时时间(2秒)。如果执行的命令时KEYS等比较耗时的操作,可以考虑增加到3~5秒为超时时间。但时最好的办法还是不要使用KEYS等命令,根据Redis官方网站的介绍,可以使用SCEN来替换。
修改初始化JedisPool时的Timeout时间。
JedisPool(GenericObjectPoolConfig poolConfig, String host, int port, int timeout)
参考资料:
java.net.SocketTimeoutException: Read timed out:https://github.com/xetorthio/jedis/wiki/FAQ#if-you-get-javanetsockettimeoutexception-read-timed-out-exception (如不能访问Github链接,可点击:[Azure Redis]If you get java.net.SocketTimeoutException: Read timed out exception)
KEYS: https://redis.io/commands/keys
SCAN: https://redis.io/commands/scan
最新文章
- [Unity3D]深度相机 Depth Camera
- Mac Pro 编译安装 Redis-3.2.3
- Team Formation
- Java编程思想学习笔记_3(继承,内部类)
- kindeditor html代码过滤不能保存
- 转载SSIS中的容器和数据流—数据转换(Transformations)续
- CDZSC_2015寒假新人(1)——基础 h
- strtok、strtok_s、strtok_r 字符串分割函数
- IntelliJ IDEA应用[一]下载与安装
- css reset的重置作用(可取还是不可取,取决于你)
- gitlab 本地 定时备份
- Java新知识系列 四
- SpringBoot(七):SpringBoot整合Swagger2
- Vulcan 基于Meteor的APollO框架 , grapesjs 用于可视化生成Html 页面
- Mybatis-Plus 实战完整学习笔记(九)------条件构造器核心用法大全(上)
- ajaxfileupload.js ajax上传文件(含application/json)
- android studio 3.0 安装配置
- leetcode -- Best Time to Buy and Sell Stock III TODO
- docker 中安装PHP扩展
- 【C#笔札】1 string类型