• Java代码操作Redis的sentinel和Redis的集群Cluster操作


    Jedis操作Redis的sentinel示例代码:

    总共四台机器,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:循环语句
    Python:list用法
    ettercap局域网DNS欺骗实现过程
    Linux关于用户信息的一些命令
    业务逻辑漏洞
    Linux安装Sqlmap等工具
    CVE-2015-1635(MS15-034 )进行DOS攻击
    HTTP.SYS远程代码执行漏洞测试(ms15-034)
    爬虫学习笔记
    MSF利用ms17-010漏洞过程记录
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5631501.html
Copyright © 2020-2023  润新知