Redis之—— java客户端链接不上redis解决方案

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

from:Redis之—— java客户端链接不上redis解决方案_冰 河的博客-CSDN博客

出现问题描述:

1.Could not get a resource from the pool, Connection refused: connect

windows java这边客户端链接被拒接了,想想问题

1.Vmware里面的linux所安装的redis已经正常启动 
2.在windows用ssh客户端链接linux可以操作redis 
3.linux防火墙已经关闭 
4.拼linux的ip也能拼通

按理说应该没问题,下利用telnet测试下端口

telnet 192.168.157.130 6379

发现端口不能拼通,但是linu下其他的端口能拼通,说明就是redis自身配置的问题了

看了下配置文件,发现配置文件绑定了本地ip,该配置会导致,其他ip登录被拒绝,所以我们把它注释掉

接下来再测试运行,发先已经链接上了,说明问题解决,但是又出现新的问题 :DENIED Redis is running in protected mode because protected mode is enabled…

该问题说,redis目前处于受保护模式,不允许非本地客户端链接,我们可以通过给redis设置密码,然后客户端链接的时候,写上密码就可以解决了

配置redis的命令
config set requirepass liuyazhuang->liuyazhuang-是密码

现在java客户端通过配置主机ip号,密码就能链接上了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的 Redis 集群版 Java 客户端的示例代码: 首先,你需要引入 Redis 客户端库 jedis-cluster: ```xml <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.5.3</version> </dependency> ``` 然后,你可以创建一个 RedisClusterClient 类,实现连接池的初始化、数据操作等功能: ```java import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; import redis.clients.jedis.JedisPoolConfig; import java.util.HashSet; import java.util.Set; public class RedisClusterClient { private JedisCluster jedisCluster; public RedisClusterClient(String nodes) { Set<HostAndPort> jedisClusterNodes = new HashSet<>(); for (String node : nodes.split(",")) { String[] parts = node.split(":"); jedisClusterNodes.add(new HostAndPort(parts[0], Integer.parseInt(parts[1]))); } JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(128); jedisPoolConfig.setMaxIdle(128); jedisPoolConfig.setMinIdle(16); jedisPoolConfig.setMaxWaitMillis(5000); jedisPoolConfig.setTestOnBorrow(true); jedisPoolConfig.setTestOnReturn(true); jedisPoolConfig.setTestWhileIdle(true); this.jedisCluster = new JedisCluster(jedisClusterNodes, jedisPoolConfig); } public String get(String key) { return jedisCluster.get(key); } public void set(String key, String value) { jedisCluster.set(key, value); } public void del(String key) { jedisCluster.del(key); } // 其他操作... public void close() { jedisCluster.close(); } } ``` 在这个示例中,我们使用 JedisCluster 来连接 Redis 集群,过构造函数传入节点信息(格式为 "host1:port1,host2:port2,host3:port3"),并初始化连接池配置。然后,我们可以在 RedisClusterClient 中实现 Redis 的各种操作方法,例如 get、set、del 等。 最后,我们可以在应用程序中使用 RedisClusterClient 来连接 Redis 集群,例如: ```java RedisClusterClient redisClient = new RedisClusterClient("127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381"); redisClient.set("key", "value"); String value = redisClient.get("key"); System.out.println(value); redisClient.del("key"); redisClient.close(); ``` 这是一个简单的 Redis 集群版 Java 客户端示例,你可以根据实际需求进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值