redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections解决

本文介绍了一种在使用Jedis Cluster客户端时遇到的Too many Cluster redirections异常,并提供了详细的解决方案,包括如何正确配置集群节点地址以避免此类问题。

使用redis的jediscluster客户端进行测试出现以下异常

Exception in thread "main" redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections?

错误原因:

创建redis集群的时候使用的命令是:./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002  127.0.0.1:7003 127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006

但是由于java客户端在集群之外所以是这样写的:

Set<HostAndPort> nodes=new HashSet<HostAndPort>();
        nodes.add(new HostAndPort("192.168.0.104", 7001));
        nodes.add(new HostAndPort("192.168.0.104", 7002));
        nodes.add(new HostAndPort("192.168.0.104", 7003));
        nodes.add(new HostAndPort("192.168.0.104", 7004));
        nodes.add(new HostAndPort("192.168.0.104", 7005));
        nodes.add(new HostAndPort("192.168.0.104", 7006));
        JedisCluster jc=new JedisCluster(nodes);
        jc.set("key1", "hello word");


host地址不匹配,导致Too many Cluster redirections

所以重新构建集群使用:./redis-trib.rb create --replicas 1 192.168.0.104:7001 192.168.0.104:7002  192.168.0.104:7003  192.168.0.104:7004  192.168.0.104:7005  192.168.0.104:7006

`Could not find class [redis.clients.jedis.JedisCluster]` 错误通常表示在运行时,Java虚拟机(JVM)无法找到 `JedisCluster` 类。以下是可能的解决方案: ### 1. 检查Maven依赖 如果使用Maven进行项目管理,需要确保 `Jedis` 依赖已正确添加到 `pom.xml` 文件中。以下是添加 `Jedis` 依赖的示例: ```xml <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.7.0</version> <!-- 可以根据需要选择合适的版本 --> </dependency> ``` 添加依赖后,使用Maven重新构建项目,确保依赖被正确下载。可以在命令行中使用以下命令: ```bash mvn clean install ``` ### 2. 检查Gradle依赖 如果使用Gradle进行项目管理,需要在 `build.gradle` 文件中添加 `Jedis` 依赖: ```groovy implementation 'redis.clients:jedis:3.7.0' // 可以根据需要选择合适的版本 ``` 添加依赖后,使用Gradle重新构建项目: ```bash gradle clean build ``` ### 3. 检查IDE配置 如果在IDE(如IntelliJ IDEA或Eclipse)中开发项目,需要确保IDE已正确加载项目依赖。可以尝试刷新Maven或Gradle项目,以确保依赖被正确导入。 ### 4. 检查类路径 确保 `Jedis` 库已包含在项目的类路径中。如果手动管理依赖,需要确保 `jedis.jar` 文件已正确添加到项目的类路径中。 ### 5. 检查版本兼容性 确保使用的 `Jedis` 版本与项目的其他依赖兼容。有时,不同版本的库之间可能存在兼容性问题,导致类无法找到。 ### 6. 清理缓存 有时,IDE或构建工具的缓存可能会导致问题。可以尝试清理IDE和构建工具的缓存,然后重新构建项目。 ### 7. 检查代码导入 确保在代码中正确导入了 `JedisCluster` 类: ```java import redis.clients.jedis.JedisCluster; ``` 通过以上步骤,应该可以解决 `Could not find class [redis.clients.jedis.JedisCluster]` 问题。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值