redis问题图解
转载自https://github.com/Snailclimb/JavaGuide(添加小部分笔记)感谢作者!
主从复制原理
哨兵模式(简单)
哨兵模式详解
先配置主从模式,再配置哨兵模式
所有的哨兵 sentinel.conf 都是配置为监听master–> 192.168.14.101,如果主机宕机,sentinel.conf 中的配置也会自动更改为选举后的
Java客户端连接原理
客户端是和Sentinel来进行交互的,通过Sentinel来获取真正的Redis节点信息,然后来操作.实际工作时,Sentinel 内部维护了一个主题队列,用来保存Redis的节点信息,并实时更新,客户端订阅了这个主题,然后实时的去获取这个队列的Redis节点信息.
/** 代码相对比较简单 **/ //1.设置sentinel 各个节点集合 Set<String> sentinelSet = new HashSet<>(); sentinelSet.add("192.168.14.101:26379"); sentinelSet.add("192.168.14.102:26380"); sentinelSet.add("192.168.14.103:26381"); //2.设置jedispool 连接池配置文件 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(10); config.setMaxWaitMillis(1000); //3.设置mastername,sentinelNode集合,配置文件,Redis登录密码 JedisSentinelPool jedisSentinelPool = new JedisSentinelPool("mymaster",sentinelSet,config,"123"); Jedis jedis = null; try { jedis = jedisSentinelPool.getResource(); //获取Redis中key=hello的值 String value = jedis.get("hello"); System.out.println(value); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis != null){ jedis.close(); } }
...