http://blog.csdn.net/yerenyuan_pku/article/details/72862084

通过上文的学习,我相信大家应该已经知道如何搭建Redis集群了,本文我将为大家介绍如何测试集群。 
首先使用如下命令来启动Redis集群。

./redis-trib.rb create --replicas 1 192.168.25.128:7001 192.168.25.128:7002 192.168.25.128:7003 192.168.25.128:7004 192.168.25.128:7005  192.168.25.128:7006

Redis集群启动之后,如下图所示,可以看到192.168.25.128:7001、192.168.25.128:7002、192.168.25.128:7003这三个节点是主节点,另外三个节点是从节点。槽号为0-5460的卡槽被分配到了192.168.25.128:7001上,5461-10922被分配到了192.168.25.128:7002上,10923-16383被分配到了192.168.25.128:7003上。 

既然集群已经启动好了,我们使用redis客户端随意连接一台设备进行测试,比如我们连接192.168.25.128:7006这台设备(这是个从节点,从属于192.168.25.128:7003),如下所示(注意:一定要加上参数”-c”否则没办法重定向到其它节点)。 
 
连接上之后,我们先来保存key1,它的值是123,如下所示,可以看到,这个key1经过crc16算法并对16384进行求余之后的数字是9189,这个槽号是在192.168.25.128:7002上,因此key1被保存到了192.168.25.128:7002上。 

我们再接着保存key2,它的值是abc,如下所示,可以看到key2所对应的槽号是4998,显然是在192.168.25.128:7001上。 

最后,我们可以使用get命令取得key1、key2的值,如下图所示。 

Jedis的使用

连接单机版的Redis

如何在我们的项目中应用Redis呢?我们得使用Redis的java客户端,Redis的java客户端有很多,但官方推荐使用Jedis。下面我就来讲如何使用Jedis连接单机版的Redis。 
首先需要把jedis依赖的jar包添加到工程中,推荐添加到服务层,即taotao-content-Service工程。因此我们需要把jedis的坐标添加到taotao-content-Service工程的pom.xml文件当中,jedis的坐标如下:

<!-- Redis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>


下面在taotao-content-Service工程的src/test/java目录下新建一个com.taotao.jedis包,并在该包中编写一个JedisTest测试类,如下图所示。 

运行以上测试方法之前,确保单机版的Redis服务是启动的,否则就会报错。这时我们使用./redis-cli命令连接上单机版的Redis服务,然后使用keys *命令查看当前redis数据库这里面有多少个key,可以看到我们新添加进的键名为mytest的key,最后使用get命令取出该key的值。 

使用连接池连接单机版的Redis

上面的testJedisSingle测试方法由于每次都创建一个Jedis对象,这是不合理的,因为这样很耗资源,因此我们使用数据库连接池来处理,需要连接的时候从数据库连接池中去获取,用完连接记得关闭,这样连接池才能将资源回收,如下图所示。 

连接集群版

连接集群要使用到JedisCluster对象,我们在JedisTest测试类中再添加一个测试方法,如下图所示。 

运行以上测试方法,接着我们使用redis客户端随意连接一台设备进行测试,比如我们连接192.168.25.128:7006这台设备(这是个从节点,从属于192.168.25.128:7003),然后使用get命令取出键名为jedisCluster的key的值,如下图所示,发现正是我们所添加的“123456”。 

 

(转)淘淘商城系列——使用Jedis操作集群的更多相关文章

  1. Jedis cluster集群初始化源码剖析

    Jedis cluster集群初始化源码剖析 环境 jar版本: spring-data-redis-1.8.4-RELEASE.jar.jedis-2.9.0.jar 测试环境: Redis 3.2 ...

  2. Dubbo 系列(07-4)集群容错 - 集群

    BDubbo 系列(07-4)集群容错 - 集群 [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 集群容错 - 实战 D ...

  3. 使用Spring Data ElasticSearch+Jsoup操作集群数据存储

    使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...

  4. Dubbo 系列(07-5)集群容错 - Mock

    Dubbo 系列(07-5)集群容错 - Mock [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 实战 - 服务降级 ...

  5. Dubbo 系列(07-3)集群容错 - 负载均衡

    目录 Dubbo 系列(07-3)集群容错 - 负载均衡 Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 1.1 负载均衡算法 1.2 继承体系 2. 源码分析 ...

  6. Dubbo 系列(07-2)集群容错 - 服务路由

    目录 Dubbo 系列(07-2)集群容错 - 服务路由 1. 背景介绍 1.1 继承体系 1.2 SPI 2. 源码分析 2.1 创建路由规则 2.2 RouteChain 2.3 条件路由 Dub ...

  7. Dubbo 系列(07-1)集群容错 - 服务字典

    Dubbo 系列(07-1)集群容错 - 服务字典 [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 本篇文章,将开始分析 Dubbo 集群容错方面的 ...

  8. Elasticsearch使用系列-Docker搭建Elasticsearch集群

    Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...

  9. Java操作redis客户端Jedis连接集群(Cluster)

    创建JedisCluster类连接redis集群. @Test public void testJedisCluster() throws Exception { //创建一连接,JedisClust ...

随机推荐

  1. 基于百度AI人脸识别技术的Demo

    编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...

  2. C中 数组和指针的异同

    数组在很多情况下是和指针等价的,数组的下标运算和指针的解引用也有等价形式:arr[i] == *(arr + 1):但是也有一些情况下数组和指针是不一样的:extern int arr[]; exte ...

  3. YTU 2636: B3 指向基类的指针访问派生类的成员函数

    2636: B3 指向基类的指针访问派生类的成员函数 时间限制: 1 Sec  内存限制: 128 MB 提交: 433  解决: 141 题目描述 领导类(Leader)和工程师类(Engineer ...

  4. 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值

    关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...

  5. Codeforces Round #267 (Div. 2) C. George and Job(DP)补题

    Codeforces Round #267 (Div. 2) C. George and Job题目链接请点击~ The new ITone 6 has been released recently ...

  6. werkzeug 详解

    首先,先向大家介绍一下什么是 werkzeug,Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库.这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架, ...

  7. JSP-Runoob:JSP简介

    ylbtech-JSP-Runoob:JSP简介 1.返回顶部 1. JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它 ...

  8. 35. extjs MessageBox里fn:是什么意思

    function的缩写,用来指定回调函数,就是你点击确定或取消按钮之类的按钮以后触发的事件Ext.Msg.show({ title:'自定义消息框', msg:'这是一个自定义消息框,想怎么搞就怎么搞 ...

  9. C#面向过程之类型转换、算术运算符、关系运算符、逻辑运算符、if-else语句、switch-case、循环结构(while、for)、三元表达式

    数据类型转换: int.parse()只能转换string类型的 当参数为null时会报异常int i =Convert.ToInt32(false) 运行结果是0int i =Convert.ToI ...

  10. http报文和协议首部

    http报文和协议首部 http报文 3>报文格式 request 报文 <method> <request-URL> <version> <heade ...