zoukankan      html  css  js  c++  java
  • 【转】Java代码操作Redis的sentinel和Redis的集群Cluster操作

    总共四台机器,crxy99,crxy98分别是主节点和从节点.   crxy97和crxy96是两个监控此主从架构的sentinel节点.

    直接看代码:

     1 import org.junit.Test;
     2 
     3 import redis.clients.jedis.HostAndPort;
     4 import redis.clients.jedis.Jedis;
     5 import redis.clients.jedis.JedisPoolConfig;
     6 import redis.clients.jedis.JedisSentinelPool;
     7 
     8 public class TestSentinel {
     9     @Test
    10     public void test1() {
    11         JedisPoolConfig poolConfig = new JedisPoolConfig();
    12         String masterName = "mymaster";
    13         Set<String> sentinels = new HashSet<String>();
    14         sentinels.add("192.168.1.97:26379");
    15         sentinels.add("192.168.1.96:26379");
    16         JedisSentinelPool jedisSentinelPool = new JedisSentinelPool(masterName, sentinels, poolConfig);
    17         HostAndPort currentHostMaster = jedisSentinelPool.getCurrentHostMaster();
    18         System.out.println(currentHostMaster.getHost()+"--"+currentHostMaster.getPort());//获取主节点的信息
    19         Jedis resource = jedisSentinelPool.getResource();
    20         String value = resource.get("a");
    21         System.out.println(value);//获得键a对应的value值
    22         resource.close();
    23     }
    24 
    25 }

    运行结果入下:

    192.168.1.99--6379
    1

    Jedis操作集群....

    模拟的集群环境.在一台机器上启动多个redis..每个redis对应的是不同端口.

    在crxy99 192.168.1.99上启动的....总共3主3从 端口号对应的的是7000~7005.....

    看代码:

     1 import java.util.HashSet;
     2 import java.util.Set;
     3 import org.junit.Test;
     4 import redis.clients.jedis.HostAndPort;
     5 import redis.clients.jedis.JedisCluster;
     6 import redis.clients.jedis.JedisPoolConfig;
     7 
     8 public class TestCluster {
     9     @Test
    10     public void test1() throws Exception {
    11         JedisPoolConfig poolConfig = new JedisPoolConfig();
    12         Set<HostAndPort> nodes = new HashSet<HostAndPort>();
    13         HostAndPort hostAndPort = new HostAndPort("192.168.1.99", 7000);
    14         HostAndPort hostAndPort1 = new HostAndPort("192.168.1.99", 7001);
    15         HostAndPort hostAndPort2 = new HostAndPort("192.168.1.99", 7002);
    16         HostAndPort hostAndPort3 = new HostAndPort("192.168.1.99", 7003);
    17         HostAndPort hostAndPort4 = new HostAndPort("192.168.1.99", 7004);
    18         HostAndPort hostAndPort5 = new HostAndPort("192.168.1.99", 7005);
    19         nodes.add(hostAndPort);
    20         nodes.add(hostAndPort1);
    21         nodes.add(hostAndPort2);
    22         nodes.add(hostAndPort3);
    23         nodes.add(hostAndPort4);
    24         nodes.add(hostAndPort5);
    25         JedisCluster jedisCluster = new JedisCluster(nodes, poolConfig);//JedisCluster中默认分装好了连接池.
    26         //redis内部会创建连接池,从连接池中获取连接使用,然后再把连接返回给连接池
    27         String string = jedisCluster.get("a");
    28         System.out.println(string);            
    29     }
    30 }
  • 相关阅读:
    Python with
    Python else
    Python list
    The Python Debugger Pdb
    RPM 包
    yum
    OpenStack I18N
    Python unittest
    MySQL 行格式
    MySQL 行溢出数据
  • 原文地址:https://www.cnblogs.com/wangyayun/p/6780553.html
Copyright © 2011-2022 走看看