Jedis主从切换实现
来源:互联网 发布:远程监控域名 编辑:程序博客网 时间:2024/05/23 05:06
1.redis配置文件
配置文件示例:127.0.0.1:6379|127.0.0.1:6380|127.0.0.1:6381|127.0.0.1:6382|127.0.0.1:6383这里,对每一行的配置会以“|”分隔。最前面的redis会作为主节点。后面的redis会作为最前面一台的备份Jedis,存放在bakRedisMap(Map)中。
2.主备切换流程
先访问主的jedis,如果抛出JedisConnectionException,则catch中将会逐次ping其备份的jedis,如果存在work的从Redis(通过ping来确定),则返回对应的jedis实例,否则向外抛JedisConnectionException。具体代码:
/** * 从备份Redis群中取出可用的Jedis,如果均失败,则抛出异常。底层采用ping * * @param bakjedisArray * @param index * @return */private final Jedis getWorkBakJedis(Jedis curJedis, Jedis[] bakjedisArray, int index) {if (index == 0) {System.out.println(getJedisUniqueName(curJedis) + " JedisConnectionException!");bakjedisArray = redisConfig.getBakRedisMap().get(getJedisUniqueName(curJedis));if (bakjedisArray == null) {throw new JedisConnectionException(getJedisUniqueName(curJedis) + " No BakRedis!");}}Jedis bakjedis = bakjedisArray[index];try {bakjedis.ping();return bakjedis;} catch (JedisConnectionException e) {System.out.println(getJedisUniqueName(bakjedis) + " JedisConnectionException!");if (index == bakjedisArray.length - 1) {// 当前节点是最后的节点,直接抛出异常throw new JedisConnectionException(getJedisUniqueName(curJedis) + " All bak Jedis ConnectionException!");} else {return getWorkBakJedis(curJedis, bakjedisArray, index + 1);}}}
0 0
- Jedis主从切换实现
- java jedis主从切换
- redis实现主从复制和高可用(主从切换)
- redis实现主从复制和高可用(主从切换)
- keepalived 实现mysql主从自动切换
- PostgreSQL一主两从实现及主从切换
- keepalive实现mysql主从自动切换
- Redis采用Sentinel实现主从切换
- Redis 主从、哨兵Sentinel、Jedis
- redis主从配置及通过keepalived实现redis自动切换
- spring+hibernate+mysql实现主从数据库动态切换
- redis 主从备份自动切换+java代码实现类
- springMvc-Mybatis 实现主从数据库/多数据源切换配置
- Keepalived实现redis的主从切换高可用原理详解
- Redis 哨兵模式实现主从故障互切换
- 三:redis哨兵模式实现主从故障切换1
- 三:redis哨兵模式实现主从故障切换2
- 利用MyCAT实现MySQL的读写分离和主从切换
- SingleTon
- Codeforces Round #316 (Div. 2) D. Tree Requests (DFS序)
- Leetcode#53||Maximum Subarray
- 【HDU4405】【Aeroplane chess】【概率dp】
- Ubiquitous Religions
- Jedis主从切换实现
- 1. JavaScript Array 对象
- HDU1023 Train Problem II【Catalan数】
- CLRS第五章思考题
- table表格td撑开
- HDU 2473 并查集的删点
- Android 禁止横竖屏切换,onConfigurationChanged的作用
- java学习笔记-----qq项目----在服务器端实现两个客户端的通信的原理
- 【黑马程序员-学习笔记】OC-基础知识总结