【转】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 }
【转】Java代码操作Redis的sentinel和Redis的集群Cluster操作的更多相关文章
- Java代码操作Redis的sentinel和Redis的集群Cluster操作
总共四台机器,crxy99,crxy98分别是主节点和从节点. crxy97和crxy96是两个监控此主从架构的sentinel节点. 看代码: import org.junit.Test; im ...
- Linux--6 redis订阅发布、持久化、集群cluster、nginx入门
一.redis发布订阅 Redis 通过 PUBLISH .SUBSCRIBE 等命令实现了订阅与发布模式. 其实从Pub/Sub的机制来看,它更像是一个广播系统,多个Subscriber可以订阅多个 ...
- redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用
目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...
- redis与集群实用操作笔记
redis哨兵 部署方式 redis配置 首先需要区分的是主从redis,主机也就是用来写的机器,从机是从来读的,为主机分担压力,与集群不同的是redis哨兵不可通过从机写入数据同步到主机,但是也可以 ...
- Java接口对Hadoop集群的操作
Java接口对Hadoop集群的操作 首先要有一个配置好的Hadoop集群 这里是我在SSM框架搭建的项目的测试类中实现的 一.windows下配置环境变量 下载文件并解压到C盘或者其他目录. 链接: ...
- redis 5.0.3 讲解、集群搭建
REDIS 一 .redis 介绍 不管你是从事Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了 ...
- Redis安装(单机及各类集群,阿里云)
Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很 ...
- 2017最新技术java高级架构、千万高并发、分布式集群、架构师入门到精通视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...
- redis基础之redis-sentinel(哨兵集群)(六)
前言 redis简单的主从复制在生产的环境下可能是不行的,因为从服务器只能读不能写,如果主服务器挂掉,那么整个缓存系统不能写入了:redis自带了sentinel(哨兵)机制可以实现高可用. redi ...
随机推荐
- 数据库like匹配的实现猜测
insert into test_fulltext values("王正科技全文") select * from test_fulltext where data like &qu ...
- u-boot2011.09 启动流程记录
start arch/arm/cpu/armv7/start.S 36 .globl _start 37 _start: b reset 136 reset: 137 bl save_boot_par ...
- [RTC]系统时间NTP和RTC同步,Debian的时区配置
转自:http://www.cnblogs.com/jiu0821/p/5999566.html Debian的时区配置 一. 修改时区 1. 查看当前时区 命令 : "date -R&qu ...
- mac安装docker,显示无效的命令
mac安装完docker后,显示无效的命令. 在应用程序中找到docker安装的路径,将该路径写到/etc/paths里面
- 如何使用sendEmail发送邮件
sendEmail是一个轻量级,命令行的SMTP邮件客户端.如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php.bashperl和web站 ...
- Microsoft.AspNet.Identity.EntityFramework/IdentityDbContext.cs
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; ...
- PCL的PNG文件和计算点云重心
PCL提供节约一点云的值为一个PNG图像文件的可能方案.显然,这只能用有序的点云来完成,因为生成的图像的行和列将与点云的对应完全一致.例如,如果你从一个传感器Kinect或Xtion的点云,你可以用这 ...
- Java设计模式(14)责任链模式(Chain of Responsibility模式)
Chain of Responsibility定义:Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合, ...
- ubuntu中pycharm配置opencv2环境
在ubuntu中安装pycharm.opencv2后.在pycharm环境中无法使用opencv,后来查资料显示OpenCV is not pip-installable. You’ll need t ...
- python3 实现mysql数据库连接池
首先声明一下,这篇博客进行了通过自己的代码方式,加上这篇博客,最后总结出这段代码.参考博客连接:http://blog.csdn.net/zbc1090549839/article/details/5 ...