这里说的三种工作模式是指:

1、单机模式

2、分片模式

3、集群模式(since 3.0)

说明图详见以下:

使用单机模式连接:

 private String addr="192.168.1.1";
private String port="6236";
private String key="key";
private Jedis jedis=new Jedis(addr,port);//Jedis获取到的Redis数据在jedis里,
jedis.set("a","b");//更改key为a的值
jedis.hmset(key,hash);
System.out.println(jedis.get(key));

使用分片模式连接:

GenericObjectPoolConfig config=new GenericObjectPoolConfig();
config.setMaxIdle(32);
config.setMinIdle(12);
config.setTestOnBorrow(true);
config.setTestOnReturn(rtrue);
config.setTestWhileIdle(true);
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
for (int i = 0; i < shareds.size(); i++) {
shards.add(new JedisShardInfo("192.168.0.100", 6379, 200));
}
// 构造池
ShardedJedisPool shardedJedisPool= new ShardedJedisPool(config, shards);
ShardedJedis jedis=shardedJedisPool.getResource();
jedis.set("a","b");
jedis.hmset(key, hash);

使用集群模式:

     String[] ADDRs = conf.getString("redisIP", "10.244.84.33").split(",");//conf是读取的配置
String[] PORTs = conf.getString("redisPort", "6379").split(",");
for (int i = 0; i < length; i++) {
HostAndPort hostAndPort = new HostAndPort(ADDRs[i], Integer.parseInt(PORTs[i]));
haps.add(hostAndPort);
}
JedisCluster myJedisCluster = new JedisCluster(haps, TIMEOUT);
     Map<String, String> gather = new HashMap<>(); //Redis中的数据是<key,value>形式,也可以是其他类型的数据
gather =myJedisCluster.hgetAll(key) ;

补充:使用JedisPool连接Redis:

public class RedisUtils {
static { String configurationFileName = "xxx.properties";
Configuration conf = Configuration.getConfiguration(configurationFileName);
if (conf == null) {
System.out.println("reading " + configurationFileName + " is failed.");
System.exit(-1);
}
String[] ADDRs = conf.getString("redisIP", "10.100.56.33").split(",");
String[] PORTs = conf.getString("redisPort", "6379").split(","); if (ADDRs.length == 0 || PORTs.length == 0) {
System.out.println("definition redisIP is not found in " + configurationFileName);
System.exit(-1);
}
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(MAX_IDLE);
config.setTestOnBorrow(TEST_ON_BORROW);
jedisPool = new JedisPool(config, ADDRs[0], PORT, TIMEOUT);
} public synchronized static Jedis getJedis() {
if (jedisPool != null) {
//获取资源
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} public static void returnBrokenResource(Jedis jedis) {
if (jedis != null) {
//释放资源
jedisPool.returnBrokenResource(jedis); }
} public static void returnResource(Jedis jedis) {
if (jedis != null) {
//释放资源
jedisPool.returnResource(jedis);
}
}
}

尚有需要改进之处,暂时记录一下

Jedis连接Redis三种模式的更多相关文章

  1. [转]VMware Workstation网络连接的三种模式

    经常要使用VMWare Workstation来在本地测试不同的操作系统,以前也搞不清楚网络连接三种模式,最近看了几篇文章才算明白.现总结如下: 1. VMware Workstation的虚拟网络组 ...

  2. Redis三种模式——主从复制,哨兵模式,集群

    一.Redis主从复制作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复:实际上是一种服务的冗余. 负 ...

  3. redis三种模式对比

    模式类型 主从模式(redis2.8版本之前的模式).哨兵sentinel模式(redis2.8及之后的模式).redis cluster模式(redis3.0版本之后) 主从模式原理 同Mysql主 ...

  4. 理解VMware虚拟机下网络连接的三种模式(如何配置虚拟机上网)

    很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正. bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两 ...

  5. Linux初学之vmware Workstation 网络连接三种模式

    简介: VM(VMware Workstation简称VM,后面都将用VM代替阐述)是一款功能强大的虚拟化软件.VM支持在 单一的桌面上同时运行多款不同的操作系统,能够模拟完整的网络环境,支持pxe功 ...

  6. VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

    VMware虚拟机上网络连接(network type)的三种模式--bridged.host-only.NAT VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换 ...

  7. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  8. hadoop学习;自己定义Input/OutputFormat;类引用mapreduce.mapper;三种模式

    hadoop切割与读取输入文件的方式被定义在InputFormat接口的一个实现中.TextInputFormat是默认的实现,当你想要一次获取一行内容作为输入数据时又没有确定的键.从TextInpu ...

  9. 用Jedis连接Redis

    jedis中的方法名,和Redis的命令几乎一样 1.jar包,作为测试只需要一个jar 2.代码 package com; import java.util.HashMap; import java ...

随机推荐

  1. 你一定想知道的关于FPGA的那些事

    首先,如果您从未接触过FPGA(现场可编程门阵列),或者有过一点基础想要继续深入了解这个行业,在这里,会向您介绍FPGA,并且向您解释FPGA都能解决什么问题,如何解决这些问题,并讨论如何将设计进行优 ...

  2. Server Tomcat v9.0 Server at localhost failed to start.

    最近老是出现这样的问题,在网上找了很多方法都不行,试着把Tomcat重新配置了一下就好了,事后找到一个博客,试了一下也可以使用

  3. Hibernate学习11——配置Hibernate二级缓存

    一.缓存的概念: 以空间换时间:   二.Hibernate缓存的分类: 前面我们讲的缓存都是session缓存:也叫一级缓存:get,load等缓存都是内置的,一级缓存: SessionFactor ...

  4. orzdba_monitor.sh脚本使用

    1.orzdba_monitor.sh脚本使用 ./orzdba_monitor.sh 主要是用nohup同时在后台调用orzdba,启动下面三个命令 [root@node02 scripts]# p ...

  5. 0007-一套完整的CRUD_DEMO

    好久没写了,一直在忙别的东西,但是想想,还是把之前的补充完整好了.给大家一个参考,也为自己留个备份. 首先写一个Html作为内容载体,主要结构如下 <div ui-view="navb ...

  6. Vue源码(一)

    入口文件 src/core/instance/index.js 中可以看到 function Vue (options) { if (process.env.NODE_ENV !== 'product ...

  7. Pymol

    如何用Pymol做出那些美呆的结构图(基础篇) 2016-10-31  翾园  摘自 BioEngX生化...  阅 1079  转 6 转藏到我的图书馆   微信分享:   摘自微信公众号:BioE ...

  8. 第七章 API网关服务:Spring Cloud Zuul

    API网关是一个更为智能的应用服务器, 它的定义类似于面向对象设计模式中的Facade模式, 它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤.它除了要实现 ...

  9. HTTP头的Expires与Cache-control区别

    2010年3月24日 a18ccms 发表评论 阅读评论 今天在群里聊天.说道了Expires.这里来说明下这两个的区别吧. 1.概念 Cache-control 用于控制HTTP缓存(在HTTP/1 ...

  10. Django-组件--用户认证Auth(auth_user增加字段)

    引入: from django.db import models from django.contrib.auth.models import AbstractBaseUser 源码 : from d ...