首页 / JAVA / java 集成Redis 一主多从
java 集成Redis 一主多从
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 集成Redis 一主多从,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3954字,纯文字阅读大概需要6分钟。
内容图文
![java 集成Redis 一主多从](/upload/InfoBanner/zyjiaocheng/918/c4fa60d04cfb4d219b519843608ae3b3.jpg)
1、测试代码如下:
public static void main(String[] args) { Set<String> sentinels = new HashSet<String>(); sentinels.add("118.25.7.111:26379"); sentinels.add("118.25.7.111:26380"); sentinels.add("118.25.7.111:26381"); String clusterName = "mymaster"; //此处添加密码 String password = "foo" ; // 建立连接池配置参数 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(); }
问题:
1、-DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
解决:此处是因为sentinel的保护模式开启(默认)导致的,在sentinel对应的配置文件中将其关闭即可,即
#关闭保护模式 protected-mode no
2、redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:53)
at redis.clients.jedis.JedisSentinelPool.getResource(JedisSentinelPool.java:209)
at com.ww.wwta.config.client.RedisClusterClient.main(RedisClusterClient.java:92)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
at redis.clients.jedis.Connection.connect(Connection.java:207)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:433)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:362)
at redis.clients.util.Pool.getResource(Pool.java:49)
... 2 more
解决:未将对应的主服务的端口加入防火墙,将设置端口加入防火墙即可,即
firewall-cmd --permanent --zone=public --add-port=26380/tcp firewall-cmd --reload
查看是否已加入:
firewall-cmd --permanent --zone=public --list-ports
3、连接127.0.0.1:6780连接拒绝
需将sentinel配置sentinel monitor mymaster 127.0.0.1 6380 2 -> sentinel monitor mymaster 118.25.7.111 6380 2
内容总结
以上是互联网集市为您收集整理的java 集成Redis 一主多从全部内容,希望文章能够帮你解决java 集成Redis 一主多从所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。