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

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介:

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 }
复制代码

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5631501.html,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【8月更文挑战第28天】Lambda表达式在Java 8中首次引入,它提供了一种简洁、灵活的方式来表示匿名函数。本文将介绍Lambda表达式的基本概念、语法和常见用法,并探讨如何利用Lambda表达式来简化Java代码,提高开发效率。无论你是新手还是有经验的Java开发者,本文都将帮助你更好地理解和应用Lambda表达式。
|
4天前
|
人工智能 小程序 Java
【Java】throw异常后代码还执行吗?80%小伙伴竟然不知道
本文通过具体的Java代码示例,探讨了Java异常处理机制下的程序流程变化,包括未使用try-catch时异常导致流程中断、使用try-catch捕获异常后的不同执行路径、循环中的异常处理以及throw抛出异常后的代码执行情况。总结了异常处理的关键点,强调了finally块的重要性。
22 4
【Java】throw异常后代码还执行吗?80%小伙伴竟然不知道
|
1天前
|
Java Devops 持续交付
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。
|
1天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
20 5
|
1天前
|
Java
java代码和详细的代码应用
代码块分为局部、构造、静态和同步代码块。局部代码块控制变量生命周期,例如 `int a` 只在特定代码块内有效。构造代码块用于创建对象时执行附加功能,避免构造方法中代码重复。静态代码块随类加载执行一次,常用于初始化操作。同步代码块确保多线程环境下方法执行的原子性,通过 `synchronized` 关键字实现。
16 3
|
1天前
|
设计模式 算法 Java
【揭秘】如何巧妙运用Java模板方法模式,让你的代码优雅升级?
【8月更文挑战第30天】模板方法模式是一种行为型设计模式,它定义了算法的骨架并将某些步骤延迟到子类中,使子类能在不改变算法结构的情况下重定义特定步骤。此模式适用于具有共同结构但细节不同的场景,如角色升级系统。通过定义一个抽象类 `Character` 包含模板方法 `levelUp` 和抽象步骤方法,子类如 `Warrior` 和 `Mage` 可以实现具体逻辑。这种方式提供了良好的扩展性,确保算法结构不变,同时保持系统的稳定性和一致性,在数据处理和业务流程管理中广泛应用。
12 2
|
2天前
|
缓存 Java
Java内存管理秘籍:掌握强软弱幻四大引用,让代码效率翻倍!
【8月更文挑战第29天】在Java中,引用是连接对象与内存的桥梁,主要分为强引用、软引用、弱引用和幻象引用。强引用确保对象生命周期由引用控制,适用于普通对象;软引用在内存不足时可被回收,适合用于内存敏感的缓存;弱引用在无强引用时即可被回收,适用于弱关联如监听器列表;幻象引用需与引用队列配合使用,用于跟踪对象回收状态,适用于执行清理工作。合理使用不同类型的引用车可以提升程序性能和资源管理效率。
20 4
|
1天前
|
Java C# 容器
Java代码的第一行实战
这段代码展示了Java的基本结构,包括`package`(包)、`public`(访问修饰符)、`class`(类)、`static`(静态)、`void`(空)及`System.out.println()`(系统输出)。同时介绍了Java中的注释、数据类型(如`byte`、`short`、`int`、`long`、`float`、`double`、`char`、`boolean`)、变量、常量、运算符、类型转换、赋值运算符、关系运算符与逻辑运算符等内容。通过生动的例子帮助理解各种概念。
11 2
|
1天前
|
Java 开发者 UED
“Java开发者必看:异步编程实战解析,掌握这些技巧,让你的代码跑得更快!
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点。异步编程作为提高应用响应速度和吞吐量的技术,在Java中广泛采用。本文详细介绍了Java异步编程的概念与优势,并通过实战示例展示了如何利用Future、Callable及CompletableFuture在实际项目中实施异步编程,帮助开发者更好地理解和应用这一技术。
10 2
|
1天前
|
并行计算 Java 大数据
Java函数式编程:一场编程范式的革命,让你的代码焕发新生!
【8月更文挑战第30天】Java函数式编程是一种基于数学函数理论的编程范式,强调数据处理的不可变性和纯函数使用,通过将函数视为第一类对象,实现更简洁、易读的代码结构,在数据流处理与并行计算中尤为突出。与命令式编程关注执行步骤不同,函数式编程侧重描述计算目标而非具体操作流程,减少了状态变化,使代码更清晰易维护。在Java中,函数式编程通过降低副作用和状态依赖简化了复杂度,并提高了代码质量和测试性,尤其是在Java 8的Stream API中得到了充分体现,能够自动优化多核处理器上的并行处理性能。
11 2
下一篇
云函数