Java操作Redis实现单点故障自动切换
2015-03-31 11:36
507 查看
1、在项目中我们用redis,如果主节点宕机,这是正在操作redis的服务就会立即暂停,之前操作的数据可能出现异常。因此在Java客户端实现单点故障时很有必要的。
2、首先我们用到Jedis包中JedisSentinelPool监控连接池,我们通过连接redis监控集群来动态去解析redis集群主节点的信息,然后创建redis连接。
3、下面是连接redis集群代码
2、首先我们用到Jedis包中JedisSentinelPool监控连接池,我们通过连接redis监控集群来动态去解析redis集群主节点的信息,然后创建redis连接。
3、下面是连接redis集群代码
package com.test; import java.util.HashSet; import java.util.Set; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisSentinelPool; import redis.clients.jedis.exceptions.JedisConnectionException; /** * 连接redis监控实现单点故障自动切换测试类 * @author 张军 */ public class RedisTest { //监控连接池 private static JedisSentinelPool jedisPool = null; //主节点的主机名 private static String master = "redis_master"; //主节点IP public static String host = "192.168.1.111"; //端口号 public static int port = 26379; //选择redis库(默认为0) public static int database = 0; //超时时间(0标识永远不超时) public static int timeout = 0; public static void main(String[] args) { try { Set<String> sentinels = new HashSet<String>(); sentinels.add(new HostAndPort(host,port).toString()); jedisPool = new JedisSentinelPool(master, sentinels,new JedisPoolConfig(),timeout,null,database); test(); } catch (InterruptedException e) { e.printStackTrace(); } } /** * 循环set数据,中间把主节点进程杀掉,看处理情况 * @throws InterruptedException */ public static void test() throws InterruptedException{ long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { try { Jedis jedis = jedisPool.getResource(); jedis.set("zhangjun_" + i, "" + i); System.out.println("set第"+i+"条:"+i); jedisPool.returnResource(jedis); Thread.sleep(1000); } catch (JedisConnectionException e) { e.printStackTrace(); System.out.println("第"+i+"条出现异常:"+i); Thread.sleep(1000); } } long end = System.currentTimeMillis(); System.out.println("JedisSentinelPool@Pool SET: " + ((end - start)/1000.0) + " seconds"); } }
持续补全中。。。。。
相关文章推荐
- 通过Keepalived实现Redis Failover自动故障切换功能[实践分享] =转载
- 通过Keepalived实现Redis Failover自动故障切换功能
- redis 主从备份自动切换+java代码实现类
- 结合keepalived实现redis群集高可用故障自动切换
- 通过Keepalived实现Redis Failover自动故障切换功能[实践分享] =转载
- Redis主从复制 - 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能(整理中) .
- 通过Keepalived实现Redis Failover自动故障切换功能
- java使用Redis6--sentinel单点故障主从自动切换
- java使用Redis7--分布式存储并实现sentinel主从自动切换
- java使用Redis6–sentinel单点故障主从自动切换
- 通过Keepalived实现Redis Failover自动故障切换功能[实践分享]
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能
- 结合keepalived实现redis群集高可用故障自动切换 推荐
- Keepalived实现Redis Failover自动故障切换