redis.clients.jedis.exceptions.JedisRedirectionException异常的正确解决方法,亲测有效,嘿嘿嘿

详细解决redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool的多种详细的解决方法 阅读详情

问题分析

redis.clients.jedis.exceptions.JedisRedirectionException 是 Jedis 客户端在与 Redis 集群交互时遇到的一个异常基类,它表示客户端需要重定向到集群中的另一个节点来执行操作。这个异常并不是直接抛出的,而是作为其他重定向异常(如 JedisMovedDataException 和 JedisAskDataException)的基类存在。这些重定向异常通常是由于客户端尝试在错误的节点上执行操作,而 Redis 集群要求操作必须在包含相关数据的节点上执行。

报错原因

当 Jedis 客户端与 Redis 集群交互时,如果客户端尝试在一个不包含所需数据的节点上执行操作,Redis 集群会返回一个重定向响应,告诉客户端去哪个节点上执行这个操作。Jedis 客户端在接收到这样的响应时,会抛出相应的重定向异常(如 JedisMovedDataException 或 JedisAskDataException),这些异常都继承自 JedisRedirectionException。

解决思路

解决 JedisRedirectionException 及其子类的正确思路是让 Jedis 客户端自动处理重定向逻辑。你应该使用 JedisCluster 而不是 Jedis 来与 Redis 集群交互,因为 JedisCluster 内部会处理这些重定向,并尝试在正确的节点上重新执行操作。

解决方法

方法一:使用 JedisCluster 代替 Jedis

当与 Redis 集群交互时,你应该始终使用 JedisCluster 而不是 Jedis。JedisCluster 会自动处理哈希槽和重定向,你不需要关心这些细节。

代码示例:
下滑查看解决方法

Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000));
jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7001));
// ... 添加其他节点

JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes);

try {
    // 执行操作,如获取键的值
    String value = jedisCluster.get("mykey");
    // ... 执行其他操作
} catch (JedisRedirectionException e) {
    // 通常不需要直接捕获这个异常,因为 JedisCluster 会自动处理它
    // 如果需要额外的处理逻辑,可以在这里添加
    e.printStackTrace();
} finally {
    if (jedisCluster != null) {
        jedisCluster.close();
    }
}

在这个示例中,即使 "mykey" 所在的哈希槽不在客户端最初连接的节点上,JedisCluster 也会自动处理重定向,并在正确的节点上执行 get 操作。通常你不需要直接捕获 JedisRedirectionException 异常,因为 JedisCluster 会自动处理它。如果你需要添加额外的处理逻辑(例如重试机制或日志记录),可以在 catch 块中添加相应的代码。但是,请注意不要干扰 JedisCluster 的自动重定向机制。

正确解决redis.clients.jedis.exceptions.JedisRedirectionException异常的有效解决方法 阅读详情

相关推荐

使用 Python 获取实时港股行情数据

在本教程中,你将学习如何通过 Infoway API 获取港股实时行情数据,具体以腾讯控股(0700.HK)和汇丰控股(0005.HK)为例,使用 Python 进行数据请求和解析。

kk_stoper的博客 1517

解决:Caused by: redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key

1. 报错: Caused by: redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value 2. 报错代码: /** * 写入 list * * @param key * @param values */ public <V> Long se

愿我如星君如月 ... 夜夜流光相皎洁 ... 1万+

交换机基本介绍(分类、性能指标、硬件构成及工作方式)

一、交换机的分类与性能指标 1.1交换机的分类 按照网络构成方式来分的话,交换机分为三类:接入层交换机、汇聚层交换机和核心层交换机。 按照OSI模型来划分的话,分为:二层交换机、三层交换机和四层交换机 还有一种按照硬件形态来划分,可以分成两类:盒式交换机和机框式交换机。 盒式交换机是一种有固定端口数,有时也会带有少量扩展槽的交换机。机架式交换机是一种插槽式的交换机,这种交换机扩展性较好,可支持不同的网络类型,可支持更大端口密度的网络。一般在数据中心的接入层都会采用盒式交换机,盒式...

monologuezjp的博客 4万+

Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : ‘..‘, because one already

以下是我得报错信信息。 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysJobController': Unsatisfied dependency expressed through field 'jobService'; nested exce...

qq_41465903的博客 1万+

从数学到机床:RTCP背后的几何变换与工业实现

本文深入解析RTCP(Rotary Tool Center Point)技术在五轴数控加工中的核心作用,通过几何变换与运动学原理实现刀尖点跟随,确保加工精度。从数学基础到工业实现,详细探讨了算法架构、机床结构适配及精度保障方法,为数控系统开发和高效加工提供关键技术支撑。

jump7的博客 258

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1115

错误:redis.clients.jedis.exceptions.JedisDataException: ERR This instance has cluster support disabled

问题: spring-boot集成redis集群错误:redis.clients.jedis.exceptions.JedisDataException: ERR This instance has cluster support disabled解决办法: 修改redis.config,添加cluster-enabled yes

Hero06206的专栏 1万+

动态博弈、威胁与承诺(博弈论入门学习笔记四)

0 动态博弈 动态博弈:行动有先后顺序,不同的参与人在不同时点行动,先行动者的选择影响后行动者的选择空间,后行动者可以观察到先行动者做了什么选择。例如下棋、消费者和商家讨价还价、谈婚论嫁、企业之间的价格战等等。 因此,为了做出最优的行动选择,每个参与人都应该思考:如果我如此选择,对方将如何应对?如果我是他,我将会如何行动?给定他的应对,什么是我的最优选择? 动态博弈中的战略:在博弈开始之前就...

stepho的博客 1万+

解决高并发下Redis连接失败redis.clients.jedis.exceptions.JedisConnectionException Attempting to read from a bro

引出问题 当前Redis配置项 测压环境 出现的问题: redis.clients.jedis.exceptions.JedisConnectionException: Attempting to read from a broken connection at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:314) ~[jedis-3.1.0.jar:na] at redi.

欢迎来到风离的个人空间 5252

多元相关性分析_PAST:最简便易用的统计学分析软件教程目录

欢迎来到PAST的世界!本教程并不是将PAST的所有功能均进行详细介绍,而只是挑选与生物、医学、微生物研究相关的统计学分析内容进行讲述。根据PAST内各项分析的标签分类,将该教程具体设置如下:PAST软件介绍PAST的基本信息数据的输入和修改数据的转换和标准化图像绘制 (Plot标签)点线图和直方图散点图条形图和箱须图饼图堆叠条形图三元相图气泡图单变量统计学分析 (Univariate标...

weixin_39605706的博客 3155

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现

电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。......

配电网和matlab的博客 1万+

已解决redis.clients.jedis.exceptions.JedisRedirectionException异常的正确解决方法,亲测有效!!!

已解决redis.clients.jedis.exceptions.JedisRedirectionException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 2638

【数据集】未来不同情景下预测数据:如人口、土地利用等

未来不同情景下预测数据:如人口、土地利用等

WW、forever的博客 2995

redis.clients.jedis.exceptions.JedisRedirectionException异常的解决方案

redis.clients.jedis.exceptions.JedisRedirectionException 异常是 Jedis 客户端在与 Redis 集群进行交互时可能会遇到的一种异常。在 Redis 集群模式下,数据被分散存储在多个节点上,当客户端尝试执行一个涉及多个节点的操作时(如哈希槽不在请求节点上的 GET、SET 操作),Redis 集群会返回一个重定向指令,告诉客户端去哪个节点执行操作。Jedis 客户端负责处理这些重定向指令。

2301_79779756的博客 1005

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Redis】已解决:redis.clients.jedis.exceptions.JedisRedirectionException

场景:在一个Spring Boot项目中,开发者使用Jedis客户端连接到Redis集群进行数据存取操作。为了解决该报错问题,我们可以确保配置了所有Redis集群节点,并确保集群节点之间的通信正常。此异常通常发生在Redis集群环境中,当客户端请求被重定向到不同的Redis节点时出现问题。在上述代码中,如果Redis集群的节点配置或请求路由出现问题,就可能抛出。报错问题,确保Redis集群环境下的数据存取操作的稳定性和可靠性。通过上述代码,我们确保了所有集群节点都已正确配置,能够避免。

屿小夏.的知识博客 1086

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

redis使用报JedisDataException: READONLY You can‘t write against a read only replica.

但是我的并不是集群模式,我是通过docker安装的redis,我是把replica-read-only yes改为no。网上百度说是再redis.conf里把slave-read-only yes 修改成为 no,

weixin_42642057的博客 2288

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

已解决redis.clients.jedis.exceptions.JedisConnectionException异常的正确解决方法,亲测有效!!!

已解决redis.clients.jedis.exceptions.JedisConnectionException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 1万+

redis.clients.jedis.exceptions.JedisDataException :READONLY You can't write

分布式直连同步调用测试时出现的错误:主从复制架构下,默认Slave是只读的,如果写入则会报错: redis.clients.jedis.exceptions.JedisDataException: READONLY You can't write 解决方案: 主redis修改redis.windows.conf文件中的 appendonly no 转载于:https://www.cnb...

weixin_30251587的博客 2653

redis单机节点异常:READONLY You can‘t write against a read only replica

异常报文主要内容:READONLY You can’t write against a read only replica.(只读您不能对只读副本进行写入。可以从报文得知定位是redis异常。而我的redis并没有设置集群而是单机运行,为什么写入的时候还会报这个错误呢?第一时间直接排查配置:找到了关于主从读写的一个配置这个时候想起来了,当时部署为了方便,直接拿来一个没有根据自己情况修改的配置直接部署了,replica-read-only yes是代表控制从节点是否只接受读操作。

weixin_52450014的博客 6464

JedisDataException: READONLY You can‘t write against a read only slave.

d event to listener instance of class [org.springframework.web.context.ContextLoaderListener] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisUtil': Invocation of init method failed; nested exception is

qq_44761854的博客 730

Redis常见异常汇总

在阿里云文档中看到一篇Redis错误排查的内容,作者整理的比较详细,感觉很有参考意义,摘录下来,方便个人后续参考使用…Jedis虽然使用起来比较简单,但是不能根据使用场景设置合理的参数(例如连接池参数),或者不合理地使用了一些功能(例如Lua和事务)时,也会产生很多问题,本文对这些常见问题进行逐一说明。

Huangjiazhen711的博客 1万+

记一次多线程时获取redis连接失败

先上问题: redis.clients.jedis.exceptions.JedisConnectionException: Attempting to read from a broken connection at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:274) at redis.clients.jedis.Connection.getIntegerReply(Connectio

搬砖捡瓦 4538

Redis 客户端常见异常分析

在Redis客户端的使用过程中,无论是客户端使用不当或者Redis服务端出现问题,客户端会反应出一些异常,下面分析一下Jedis使用过程中常见的异常情况

若明天不见 6174

redis.clients.jedis.exceptions.JedisDataException: ERR This instance has cluster support disabled

hosts.add(new HostAndPort("192.168.1.128",6379)); //不支持ip地址,应该配置hosts

zw7534313的专栏 709

Redis入门完整教程:客户端常见异常

在客户端的使用过程中,无论是客户端使用不当还是Redis服务端出现 问题,客户端会反应出一些异常。本小节将分析一下Jedis使用过程中常见 的异常情况。 1.无法从连接池获取到连接 JedisPool中的Jedis对象个数是有限的,默认是8个。这里假设使用的默 认配置,如果有8个Jedis对象被占用,并且没有归还,此时调用者还要从 JedisPool中借用Jedis,就需要进行等待(例如设置了maxWaitMillis>0),如 果在maxWaitMillis时间内仍然无法获取到Jedis对象就会抛出如下异

Lee达森的博客 1863
上一篇: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster已解决
下一篇: C++运算符重载
代码无疆
博客等级 码龄3年 4万+粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值