活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 一键部署Llama3大模型学习机 0代码一键部署,预装最新主流大模型Llama3与StableDiffusion
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 产品能力
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      查看所有产品

      分布式缓存服务Redis版

      分布式缓存服务Redis版

        • 产品动态
        • 产品简介
        • 产品定义
        • 应用场景
        • 实例类型
        • Redis单机实例
        • Redis主备实例
        • Redis Proxy集群实例
        • Redis Cluster集群实例
        • 读写分离实例
        • 实例规格
        • Redis3.0实例
        • Redis4.0/5.0实例
        • Redis 6.0实例
        • 开源命令兼容性
        • Redis3.0命令
        • Redis4.0命令
        • Redis5.0命令
        • Redis 6.0命令
        • Web CLI命令
        • 实例受限使用命令
        • 部分命令使用限制
        • 缓存灾备策略
        • Redis版本差异
        • 与开源服务的差异
        • 基本概念
        • 与其他服务的关系
        • 权限管理
        • 计费说明
        • 公有云计费说明
        • 产品价格
        • 计费方式
        • 计费模式
        • 专属云计费说明
        • 开通方式
        • 产品价格
        • 计费模式
        • 快速入门
        • 创建实例
        • 创建前准备
        • 准备实例依赖资源
        • 创建Redis实例
        • 连接实例
        • 使用Redis-cli连接Redis实例
        • 多语言连接
        • Java客户端
        • Jedis
        • Lettuce
        • Redisson
        • SpringBoot集成Lettuce
        • Python Redis客户端
        • Go Redis客户端
        • C++Redis客户端(hiredis)
        • C# Redis客户端
        • PHP客户端
        • Node.js Redis客户端
        • 控制台连接Redis4.0/5.0/6.0实例
        • 查看实例信息
        • 操作指导
        • 密码管理
        • 关于实例连接密码的说明
        • 修改缓存实例密码
        • 重置缓存实例密码
        • 修改Redis实例的访问方式
        • 实例备份恢复管理
        • 备份与恢复说明
        • 设置备份策略
        • 手动备份实例
        • 实例恢复
        • 下载实例备份文件
        • 监控
        • 支持的监控指标
        • 查看监控指标
        • 必须配置的告警监控
        • 实例日常操作
        • 变更规格
        • 重启实例
        • 删除实例
        • 主备切换
        • 清空实例数据
        • 导出实例列表
        • 命令重命名
        • 实例配置管理
        • 配置管理说明
        • 修改实例配置参数
        • 修改实例维护时间窗
        • 修改实例安全组
        • 查看实例后台任务
        • 查看Redis 3.0 Proxy集群实例的数据存储统计信息
        • 分析Redis实例大Key和热Key
        • 查询Redis实例慢查询
        • 管理分片与副本
        • 实例诊断
        • 使用DCS迁移数据
        • 使用DCS迁移介绍
        • 备份文件导入方式
        • 备份文件导入方式-OBS桶
        • 备份文件导入方式-Redis实例
        • 在线迁移方式
        • 实例交换IP
        • 审计
        • 服务支持的DCS操作列表
        • 查看云审计日志
        • 权限管理
        • 参数模板
        • 查看参数模板信息
        • 创建自定义参数模板
        • 修改自定义参数模板
        • 删除自定义参数模板
        • 数据迁移指南
        • 概述
        • 迁移流程介绍
        • 迁移方案概览
        • 自建Redis迁移至DCS
        • 使用在线迁移自建Redis
        • 使用备份文件迁移自建Redis
        • 使用Redis-cli迁移自建Redis(AOF文件)
        • 使用Redis-cli迁移自建Redis(RDB文件)
        • 使用Redis-Shake工具迁移自建Redis Cluster集群
        • DCS实例间迁移
        • 使用在线迁移Redis实例
        • 使用备份文件迁移不同Region/Redis版本的实例
        • 其他云厂商Redis服务迁移至DCS
        • 使用在线迁移其他云厂商Redis
        • 使用备份文件迁移其他云厂商Redis
        • 使用Rump在线迁移
        • 使用Redis-Shake工具离线迁移其他云厂商Redis Cluster集群
        • 使用Redis-shake工具在线全量迁移其他云厂商Redis
        • DCS实例迁移下云
        • 最佳实践
        • redis常见使用规范
        • 使用Nginx实现公网访问Redis 4.0/5.0的单机主备Proxy集群实例
        • 使用SSH隧道代理机制实现公网访问DCS实例
        • 使用Redis实现排行榜功能
        • 常见问题
        • 实例类型/版本
        • 客户端和网络连接
        • Redis使用
        • Redis命令
        • 扩容缩容与实例升级
        • 监控告警
        • 数据备份/导出
        • 大Key/热Key分析
        • 主备倒换
        • 视频专区
        • 故障排除
        • Redis连接失败问题排查和解决
        • Redis实例CPU使用率高问题排查和解决
        • Redis实例内存使用率高问题排查和解决
        • 排查Redis实例带宽使用率高的问题
        • 数据迁移失败问题排查
        • 文档下载
        • 操作手册
        • 相关协议
        • 天翼云分布式缓存服务协议
        • 分布式缓存服务Redis服务等级协议
          无相关产品

          本页目录

          帮助中心 分布式缓存服务Redis版 常见问题 客户端和网络连接
          客户端和网络连接
          更新时间 2024-01-10 16:34:36
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-01-10 16:34:36
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本节主要介绍VPC内访问DCS缓存实例时如何配置安全组。

          安全组配置和选择

          由于Redis 3.0和Redis 4.0/5.0/6.0实例的部署模式不一样,DCS在控制访问缓存实例的方式也不一样,差别如下:

          • Redis 3.0:通过配置安全组访问规则控制,不支持白名单功能。安全组配置操作请参考本章节操作。
          • Redis 4.0/5.0/6.0:不支持安全组,只支持通过白名单控制。

          VPC内访问Redis 3.0实例

          客户端只能部署在与DCS缓存实例处于相同虚拟私有云(VPC)和相同子网的弹性云主机(ECS)上。

          除了ECS、DCS缓存实例必须处于相同VPC和相同子网之外,还需要将安全组分别配置了正确的规则,客户端才能访问DCS缓存实例。

          • 如果ECS、DCS缓存实例配置了相同的安全组,安全组创建后,默认包含组内网络访问不受限制的规则。
          • 如果ECS、DCS缓存实例配置了不同的安全组,可参考如下配置方式:
                            
          说明
          • 假设ECS、DCS缓存实例分别配置了安全组:sg-ECS、sg-DCS。

          • 假设DCS缓存实例服务端口为6379。

          • 以下规则,远端可使用安全组,也可以使用具体的IP地址。


          a. 配置ECS所在安全组。

          ECS所在安全组需要增加出方向规则,以保证客户端能正常访问DCS缓存实例。如果出方向规则不受限,则不用添加。

          图片24.png

          b. 配置DCS缓存实例所在安全组。

          DCS实例所在安全组需要增加入方向规则,以保证能被客户端访问。

          图片25.png

          注意

          缓存实例的入方向规则中,远端地址建议使用与子网同网段的IP地址。

          慎用“0.0.0.0/0”,避免绑定相同安全组的弹性云主机遭受Redis漏洞攻击。

          DCS实例支持公网访问吗?

          不支持在DCS实例绑定弹性IP进行公网访问的方式。您必须通过同一虚拟私有云下的弹性云主机来访问缓存实例,以确保缓存数据的安全。

          DCS实例是否支持跨VPC访问?

          跨VPC访问,即客户端和实例是否在同一个VPC。

          一般情况下,不同VPC间网络不互通,不在同一VPC下的弹性云主机无法访问DCS缓存实例。

          对于单机和主备类型的DCS缓存实例,可以通过创建VPC对等连接,将两个VPC的网络打通,实现跨VPC访问DCS缓存实例。

          用户通过VPC对等访问DCS缓存实例时,除了满足VPC对等网跨VPC访问的约束之外,还存在如下约束:

          • 当创建实例时使用了172.16.0.0/12~24网段时,客户端不能在192.168.1.0/24、192.168.2.0/24、192.168.3.0/24网段。
          • 当创建实例时使用了192.168.0.0/16~24网段时,客户端不能在172.31.1.0/24、172.31.2.0/24、172.31.3.0/24网段。
          • 当创建实例时使用了10.0.0.0/8~24网段时,客户端不能在172.31.1.0/24、172.31.2.0/24、172.31.3.0/24网段。

          关于创建和使用VPC对等连接,请参考《虚拟私有云 用户指南》的“对等连接”章节。

          注意

          DCS Redis集群实例不支持跨VPC访问,比如不能通过建立VPC对等连接的方式,从一个VPC去访问另一个VPC的集群实例。

          Redis连接时报错:“(error) NOAUTH Authentication required”。

          报错信息是指实例设置了免密访问。连接时不输入密码,即可避免上述错误。

          客户Http的Server端关闭导致Redis访问失败

          原因分析:客户端使用长连接,或者连接池,用完后关闭与DCS实例的连接,再次使用时,出现报错。

          解决方案:使用长连接或连接池,用完后不要关闭连接;如果发现连接中断,请重新建连。

          客户端出现概率性超时错误

          针对低概率超时错误,是Redis使用的正常现象。Redis使用受到网络传输、客户端设置超时时间等因素影响,可能出现单个请求超时问题。

          建议客户业务编码时,具备重试操作,提升业务的可靠性,避免低概率的单次请求失败时业务失败。

          当出现了连接超时问题时,可以优先检查Redis是否开启了aof持久化功能,这需要根据业务需求,决定是否开启,防止出现阻塞,连接不上的情况。

          如果出现超时错误概率频繁,请联系服务运维。

          使用Jedis连接池报错如何处理?

          在使用Jedis连接池JedisPool模式下,比较常见的报错如下:

          redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
          

          首先确认DCS缓存实例是正常运行中状态,然后按以下步骤进行排查。

          步骤 1 网络

          1. 核对IP地址配置

          检查jedis客户端配置的ip地址是否与DCS缓存实例配置的子网地址一致。

          1. 测试网络

          在客户端使用ping和Telnet小工具测试网络。

          − 如果ping不通:

          VPC内访问Redis 3.0实例时,要求客户端与DCS缓存实例的VPC相同,安全组相同或者DCS缓存实例的安全组放开了6379端口访问。

          − 如果IP地址可以ping通,telnet对应的端口不通,则尝试重启实例,如重启后仍未恢复,请联系技术支持。

          步骤 2 检查连接数是否超限

          查看已建立的网络连接数是否超过JedisPool 配置的上限。如果连接数接近配置的上限值,则建议重启服务观察。如果明显没有接近,排除连接数超限可能。

          Unix/Linux系统使用**:**

          netstat -an | grep 6379 | grep ESTABLISHED | wc -l

          Windows系统使用:

          netstat -an | find "6379" | find "ESTABLISHED" /C

          步骤 3 检查JedisPool连接池代码

          如果连接数接近配置的上限,请分析是业务并发原因,或是没有正确使用JedisPool所致。

          对于JedisPool连接池的操作,每次调用 jedisPool.getResource() 方法之后,需要调用 jedisPool.returnResource() 或者 jedis.close() 进行释放,优先使用close()方法。

          步骤 4 客户端TIME_WAIT是否过多

          通过ss -s查看time wait链接是否过多。

          图片26.png

          如果TIME_WAIT过多,可以调整内核参数(/etc/sysctl.conf):

          ##当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击 
          net.ipv4.tcp_syncookies = 1 
          ##允许将TIME-WAIT sockets重新用于新的TCP连接 
          net.ipv4.tcp_tw_reuse = 1 
          ##开启TCP连接中TIME-WAIT sockets的快速回收 
          net.ipv4.tcp_tw_recycle = 1 
          ##修改系统默认的TIMEOUT时间 
          net.ipv4.tcp_fin_timeout = 30
          

          调整后重启生效:/sbin/sysctl -p

          步骤 5 无法解决问题

          如果按照以上原因排查之后还有问题,可以通过抓包并将异常时间点、异常信息以及抓包文件发送给技术支持协助分析。

          抓包可使用tcpdump工具,命令如下:

          tcpdump -i eth0 tcp and port 6379 -n -nn -s 74 -w dump.pcap

          Windows系统下还可以安装Wireshark工具抓包。

                            
          说明

          网卡名请改成实际的网卡名称。

          客户端访问Redis实例出现“ERR unknown command”的原因是什么?

          有以下可能原因:

          1. 命令拼写不正确

          如下图所示,命令拼写有误,Redis实例返回“ERR unknown command”,删除String的正确命令为 del 。

          图片27.png

          1. 在低版本Redis实例运行高版本命令

          如下图所示,在Redis3.0版本运行Redis5.0新增的Stream相关命令,Redis实例返回命令出错信息。

          图片28.png

          1. 部分命令被禁用

          DCS Redis实例接口与开源Redis在数据访问方面完全兼容。但因易用性和安全性的原因,部分管理操作不能从Redis客户端发起,具体禁用的命令清单,请参考Redis命令。

          如何使用Redis-desktop-manager访问Redis实例?

          如下介绍通过内网使用Redis-desktop-manager访问Redis实例的操作:

          1.填写DCS实例子网地址,端口6379,以及相应密码。

          2.单击左下角“测试连接”。

          提示成功后,说明连接正常。

          通过内网使用Redis-desktop-manager访问Redis实例

          图片29.png

                            
          说明

          使用Redis-desktop-manager访问DCS集群实例时,执行redis命令是正常的,但是左侧显示异常,这个是因为DCS集群是基于codis架构,info命令的输出和原生的redis不一样。

          使用SpringCloud时出现ERR Unsupported CONFIG subcommand怎么办?

          DCS的Redis实例可以配合Spring_Session进行Session共享。DCS的Redis实例对接SpringCloud时,遇到如下错误信息:

          Spring Cloud报错信息

          图片30.png

          原因为出于安全考虑,DCS暂不支持客户端发起的CONFIG命令,需要按如下步骤进行操作:

          1. 通过管理控制台修改Redis实例的配置参数notify-keyspace-event,将值指定为“Egx”。
          2. 在Spring框架的XML配置文件中,增加如下:

          <util:constant

          static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>

          1. 修改Spring相关代码,通过启用ConfigureRedisAction.NO_OP这个bean组件,禁止通过客户端调用CONFIG命令,避免报错。

          @Bean

          public static ConfigureRedisAction configureRedisAction() {

          return ConfigureRedisAction.NO_OP;

          }

          更多说明,可参考Spring官方文档。

                            
          注意

          仅Redis单机和主备实例支持Spring的Session共享,Redis集群版不支持。

          连接实例必须使用密码吗?如何获取密码?

          • Redis实例支持密码模式和免密模式。Redis本身支持不设置密码,客户端可以直接连接Redis缓存服务并使用,但出于安全考虑,建议尽量选用密码模式,通过密码来鉴权验证,提升安全性。若选用密码模式,您需要在创建实例时自定义密码。
          • 如需修改Redis访问方式、修改或重置密码,请参考密码管理。

          Redis实例连接失败的原因排查

          初步排查:

          • 检查连接地址

          连接地址可从管理控制台的实例详情页面获取。

          • 检查密码

          密码输入错误时,端口可以连接上,但鉴权认证失败。

          • 检查端口

          VPC内访问,Redis实例端口默认为6379。

          • 检查带宽是否使用超限

          当实例使用带宽达到实例规格上限,可能会导致部分Redis连接超时现象。

          • 如果是Redis 3.0实例,检查安全组的入方向规则

          VPC内访问时,如果Redis客户端和Redis实例绑定了不同的安全组,则需要将Redis实例的入方向安全组放开6379端口。

          具体请参考:安全组配置和选择。

          • 如果是Redis 4.0/5.0/6.0实例,检查白名单配置

          如果实例开启了白名单,在使用客户端连接时,需要确保客户端IP在白名单内,如果不在白名单,会出现连接失败。

          客户端IP如果有变化,需要将变化后的IP加入白名单。

          • 检查实例配置参数notify-keyspace-events

          建议将notify-keyspace-events参数配置为Egx。

          进阶排查

          • Jedis连接池报错
          • 出现Read timed out或Could not get a resource from the pool

          排查是否使用了keys命令,keys命令会消耗大量资源,造成Redis阻塞。建议使用scan命令替代,且避免频繁执行。

          使用短连接访问Redis出现“Cannot assign requested address”错误

          问题描述

          应用程序通过短连接访问Redis实例时,报错:Cannot assign requested address。

          问题分析

          出现这种错误的应用程序使用的架构基本都是php-fpm加上phpredis,这种架构在并发量较大的情况下,处于TIME-WAIT状态下的TCP连接数较多,客户端无法分配出新的端口,则会出现“Cannot assign requested address”问题。

          处理方案

          • 方案一:使用pconnect替换connect。

          此方案的思路是用长连接替代短连接,减少TCP连接,同时可以避免每次请求都会重新建立连接的问题,减少延时。

          之前连接Redis的代码如下:

          $redis->connect('${Hostname}',${Port}); 
          $redis->auth('${Inst_Password}');
          

          现使用pconnect替换connect,即使用persistent connection的方式连接。

          $redis->pconnect('${Hostname}', ${Port}, 0, NULL, 0, 0, ['auth' => ['${Inst_Password}']]);
          
                            
          说明
          • 示例中的连接参数请根据业务实现情况修改,${Hostname}、${Port}和${Inst_Password}为Redis实例的连接地址、端口号和密码。

          • PhpRedis应为5.3.0及以上版本,且建议使用这种pconnect初始化方式,避免断连时出现no auth问题。

          • 方案二:修改客户端所在ECS实例的tcp_max_tw_buckets内核参数。

          此方案的思路是直接复用处于TIME-WAIT状态的端口,但是如果ECS和后端服务之间有重传,连接可能会失败,所以建议使用pconnect的方案。

          a. 连接客户端所在ECS实例。

          b. 执行以下命令,查看ip_local_port_range和tcp_max_tw_buckets参数。

          sysctl net.ipv4.tcp_max_tw_buckets net.ipv4.ip_local_port_range

          系统显示类似如下:

          net.ipv4.tcp_max_tw_buckets = 262144 
          net.ipv4.ip_local_port_range = 32768  61000
          

          c. 执行以下命令,修改tcp_max_tw_buckets参数,确保tcp_max_tw_buckets的值比ip_local_port_range范围的值小。

          sysctl -w net.ipv4.tcp_max_tw_buckets=10000

          一般情况推荐使用方案一,对于一些特定场景(业务代码牵涉过多组件不易变更等场景),需要更快的满足高并发,可以使用方案二

          连接池选择及Jedis连接池参数配置建议

          Jedis连接池优势

          Lettuce客户端及Jedis客户端比较如下:

          • Lettuce:

            • Lettuce客户端没有连接保活探测,错误连接存在连接池中会造成请求超时报错。
            • Lettuce客户端未实现testOnBorrow等连接池检测方法,无法在使用连接之前进行连接校验。
          • Jedis:

            • Jedis客户端实现了testOnBorrow、testWhileIdle、testOnReturn等连接池校验配置
            • 开启testOnBorrow在每次借用连接前都会进行连接校验,可靠性最高,但是会影响性能(每次Redis请求前会进行探测)。
            • testWhileIdle可以在连接空闲时进行连接检测,合理配置阈值可以及时剔除连接池中的异常连接,防止使用异常连接造成业务报错。
            • 在空闲连接检测之前,连接出现问题,可能会造成使用该连接的业务报错,此处可以通过参数控制检测间隔(timeBetweenEvictionRunsMillis)。

          因此,Jedis客户端在面对连接异常,网络抖动等场景下的异常处理和检测能力明显强于Lettuce,可靠性更强。

          Jedis连接池参数配置建议

          参数 配置介绍 配置建议
          maxTotal 最大连接,单位:个 根据Web容器的Http线程数来进行配置,估算单个Http请求中可能会并行进行的Redis调用次数,例如:Tomcat中的Connector内的maxConnections配置为150,每个Http请求可能会并行执行2个Redis请求,在此之上进行部分预留,则建议配置至少为:150 x 2 + 100= 400**限制条件:**单个Redis实例的最大连接数。maxTotal和客户端节点数(CCE容器或业务VM数量)数值的乘积要小于单个Redis实例的最大连接数。例如:Redis主备实例配置maxClients为10000,单个客户端maxTotal配置为500,则最大客户端节点数量为20个。
          maxIdle 最大空闲连接,单位:个 建议配置为maxTotal一致。
          minIdle 最小空闲连接,单位:个 一般来说建议配置为maxTotal的X分之一,例如此处常规配置建议为:100。对于性能敏感的场景,防止经常连接数量抖动造成影响,也可以配置为与maxIdle一致,例如:400。
          maxWaitMillis 最大获取连接等待时间,单位:毫秒 获取连接时最大的连接池等待时间,根据单次业务最长容忍的失败时间减去执行命令的超时时间得到建议值。例如:Http最大容忍超时时间为15s,Redis请求的timeout设置为10s,则此处可以配置为5s。
          timeout 命令执行超时时间,单位:毫秒 单次执行Redis命令最大可容忍的超时时间,根据业务程序的逻辑进行选择,一般来说处于对网络容错等考虑至少建议配置为210ms以上。特殊的探测逻辑或者环境异常检测等,可以适当调整达到秒级。
          minEvictableIdleTimeMillis 空闲连接逐出时间,大于该值的空闲连接一直未被使用则会被释放,单位:毫秒 如果希望系统不会经常对连接进行断链重建,此处可以配置一个较大值(xx分钟),或者此处配置为-1并且搭配空闲连接检测进行定期检测。
          timeBetweenEvictionRunsMillis 空闲连接探测时间间隔,单位:毫秒 根据系统的空闲连接数量进行估算,例如系统的空闲连接探测时间配置为30s,则代表每隔30s会对连接进行探测,如果30s内发生异常的连接,经过探测后会进行连接排除。根据连接数的多少进行配置,如果连接数太大,配置时间太短,会造成请求资源浪费。对于几百级别的连接,常规来说建议配置为30s,可以根据系统需要进行动态调整。
          testOnBorrow 向资源池借用连接时是否做连接有效性检测(ping),检测到的无效连接将会被移除。 对于业务连接极端敏感的,并且性能可以接受的情况下,可以配置为True,一般来说建议配置为False,启用连接空闲检测。
          testWhileIdle 是否在空闲资源监测时通过ping命令监测连接有效性,无效连接将被销毁。 True
          testOnReturn 向资源池归还连接时是否做连接有效性检测(ping),检测到无效连接将会被移除。 False
          maxAttempts 在JedisCluster模式下,您可以配置maxAttempts参数来定义失败时的重试次数。 建议配置3-5之间,默认配置为5。根据业务接口最大超时时间和单次请求的timeout综合配置,最大配置不建议超过10,否则会造成单次请求处理时间过长,接口请求阻塞。
          上一篇 :  实例类型/版本
          下一篇 :  Redis使用
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

           文本反馈
          搜索
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明