Jedis连接redis
今天与大家分享下,Jedis连接池使用。先看一段JAVA 代码:
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(100);
JedisPool pool = new JedisPool(config, "ip地址", 6379);
return pool.getResource();
这段代码是最简单连接redis的连接池代码,单机连接,存在单点故障。不过也看这个IP是否是VIP, redis可以做成HA模式。架构如下图:
redis 两台服务器,通过专业的HA软件实现主从管理,对外通过VIP提供服务,但主机宕机,HA会切换到从机运行,同时改变从机的角色为: master.。 这种架构不适合做读写分离,只有一台机器ONLINE 状态。
Redis 分片架构,先看图。典型的分片架构如下图:
该架构适合做并发较高,访问量大,如果采用jedis连接,可以实现Hash 一致性数据分布。具体代码如下:
JedisPoolConfig config = new JedisPoolConfig();
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add(new JedisShardInfo("10.20.15.236", 6379));
shards.add(new JedisShardInfo("10.20.15.236", 6380));
// 构造池
ShardedJedisPool shardedJedisPool = new ShardedJedisPool(config, shards);
ShardedJedis shardedJedis = shardedJedisPool.getResource();
Redis 哨兵机制
Redis本身提供一种HA方式,直接上图:
在服务器上启动多个哨兵进程,通过哨兵进程监控MASTER节点,当master节点宕机 , Sentinel 进程就会切换到从机。
Sentinel 进程的配置文件如下:
bind 10.20.15.236
port 7000
dir "/var/work/redis/tmp"
sentinel myid 466427b54fe410637a35b60ee3fbf995411b71da
sentinel monitor mymaster 10.20.15.241 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 150
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 6
sentinel leader-epoch mymaster 6
sentinel known-slave mymaster 10.20.15.236 6379
sentinel current-epoch 6
配置文件在这就不细说了。
Jedis 如何使用:
Set<String> sentinels = new HashSet<String>();
sentinels.add("10.20.15.236:7000");
sentinels.add("10.20.15.241:7000");
JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels);
注意,该代码的IP地址是Sentinel 进展的IP和端口号。
Jedis连接redis的更多相关文章
- 用Jedis连接Redis
jedis中的方法名,和Redis的命令几乎一样 1.jar包,作为测试只需要一个jar 2.代码 package com; import java.util.HashMap; import java ...
- jedis 连接 redis
一.连接单机版的 redis /** * 直接连接 redis * @throws Exception */ @Test public void test1() throws Exception { ...
- 通过jedis连接redis单机成功,使用redis客户端可以连接集群,但使用JedisCluster连接redis集群一直报Could not get a resource from the pool
一,问题描述: (如题目)通过jedis连接redis单机成功,使用JedisCluster连接redis集群一直报Could not get a resource from the pool 但是使 ...
- 关于Jedis连接redis出现问题
环境说明: redis服务器系统:ubuntu ip 192.168.10.9 port 6379 两台电脑:一个作为专门的服务器,一个是开发环境,以下一顿操作皆基于开发环境. 就这样的简单的代码连接 ...
- Java 使用Jedis连接Redis数据库(-)
redis 安装: Linux 安装redis 1)下载jar包: 使用Jedis需要以下两个jar包: jedis-2.8.0.jar commons-pool2-2.4.2.jar 2)测试red ...
- Jedis连接Redis三种模式
这里说的三种工作模式是指: 1.单机模式 2.分片模式 3.集群模式(since 3.0) 说明图详见以下: 使用单机模式连接: private String addr="192.168.1 ...
- Jedis连接redis客户端
1 单点的redis利用jedis客户端连接 如何连接 //1 利用jedis连接对象操作redis @Test public void test01(){ //构造一个具有连接信息的jedis对象 ...
- springboot 使用 jedis 连接 Redis 数据库
1. 在 pom.xml 配置文件中添加依赖 <!-- redis 依赖 --> <dependency> <groupId>org.springframework ...
- 20190928-02使用Redis客户端Jedis连接Redis,以及用Java代码操作Redis 000 030
启动redis package com.yujie.jedis; import java.util.HashMap; import java.util.Map; import java.util.Se ...
随机推荐
- Intel GPA果然是神器
又一次PERF暗黑三...只有GPA帮到了我. Intel GPA是一个用于测试产品性能和质量的工具.使用这个工具可以运行在游戏或3D应用程序中用来看看它们是如何工作的,其优势性的一点是,有了Auto ...
- Delphi 中调用JS文件中的方法
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- var 在linq中的使用
一:掌握linq,写出超炫的代码 1. var关键字 [隐式类型] 隐式类型 和 匿名类型的不同叫法. 特性 和 属性 2.隐式类型 就是让编译器来推断的一种语法糖. 二:隐式类型的应用场景 1. 简 ...
- C# try catch finally
抛出异常开销非常大(相对而言),所以不要过多的在程序中使用它们 既然finally一定是要执行的,即使try块中有return
- C#中的委托和事件的使用
委托 事件的基础 将方法当做变量传递, 也有多播 事件 便于一对多的事件通知和联动操作 封装性,限制只能有+=和-=操作 用于间接的互相交互时解耦(直接或单向交互就可以直接调用了). 例如GridVi ...
- ptyhon【递归练习】
- 小程序:如何在wxml页面中调用JavaScript函数
早上过来遇到一个这样的bug: 在计算百分比的时候没有保留小数点后2位,从而导致一些无法整除的结果显示太长 一开始,我以为这是一个很普通的bug,既然wxml在页面{{}}内支持简单的运算,我想也应该 ...
- 二十六、Nodejs 操作 MongoDb 数据库
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
- VMware Workstation内存不足问题的解决!
我今天使用VMware Workstation,遇到内存使用不足的问题,我使用的VMware Workstation是9,刚开始我以为是我的VMware Workstation版本低,所以上网找到了V ...
- python 图像识别
这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...