redis和jedis搭建过程中遇到的问题
程序员文章站
2024-02-27 22:58:57
...
一、异常
警告: Cannot get master address from sentinel running @ 127.0.0.1:26379. Reason: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect. Trying next one.
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: All sentinels down, cannot determine where is mymaster master is running...无法从哨兵运行中获得主地址可能导致以上异常原因:
1.ip(可能是内网,外网这个要分清楚)不对。也可能是配置文件中bind未注释。
2.redis未启动。
3.所有的哨兵,不能确是mymaster主运行。
二、连接池连不上
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
看了很多网上的解决办法,可能是1.bind 127.0.0.1 未注释。
2.ip端口ping通 (以下是通的状态)
redis 127.0.0.1:6388> ping
PONG
redis 127.0.0.1:6388>
3.防火墙ip、redis版本问题、各种参数设置
4.密码
我测试时是密码有问题。
public static void main(String[] args) {
Set<String> sentinels = new HashSet<String>();
String hostAndPort1 = "111.13.56.194:26379";
//String hostAndPort1 = "192.168.1.104:26379";
sentinels.add(hostAndPort1);
String clusterName = "mymaster6379" ;
String password = "123456" ; //此处添加密码
// 建立连接池配置参数
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(50);
config.setMinIdle(8);//设置最小空闲数
config.setMaxWaitMillis(10000);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
//Idle时进行连接扫描
config.setTestWhileIdle(true);
//表示idle object evitor两次扫描之间要sleep的毫秒数
config.setTimeBetweenEvictionRunsMillis(30000);
//表示idle object evitor每次扫描的最多的对象数
config.setNumTestsPerEvictionRun(10);
//表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义
config.setMinEvictableIdleTimeMillis(60000);
JedisSentinelPool redisSentinelJedisPool = new JedisSentinelPool(clusterName,sentinels,config,password);
Jedis jedis = null;
try {
jedis = redisSentinelJedisPool.getResource();
jedis.set("key", "aaa");
System.out.println(jedis.get("key"));
System.out.println(jedis.get("bbb"));
} catch (Exception e) {
e.printStackTrace();
} finally {
//redisSentinelJedisPool.returnResource(jedis);
jedis.close();
}
redisSentinelJedisPool.close();
}
注意:
master(主)需要设置密码,否则会抛出Could not get a resource from the pool
requirepass 123456
master(主)设置了密码,slave(从)需要验证,否则主从配置不生效,主从不同步。
masterauth 123456
上一篇: Logback error
推荐阅读
-
Node.js 环境搭建过程中可能遇到的问题解决方案
-
redis和jedis搭建过程中遇到的问题
-
搭建SSH时的思考和遇到的几个问题的解决方法
-
spring同时集成redis和mongodb时遇到多个资源文件加载的问题 博客分类: java
-
安装、配置和测试Asterisk过程中遇到的问题及解决方法
-
Anaconda过程中遇到的CondaMultiError,CondaHTTPError和PermissionError问题及解决方案
-
cocoapods的安装和安装过程中遇到的问题
-
搭建SSH时的思考和遇到的几个问题的解决方法
-
Hadoop环境搭建过程中遇到的问题以及解决方法
-
搭建MyEclipse和Tomcat遇到的问题