(转)淘淘商城系列——使用Jedis操作集群
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操作集群的更多相关文章
- Jedis cluster集群初始化源码剖析
Jedis cluster集群初始化源码剖析 环境 jar版本: spring-data-redis-1.8.4-RELEASE.jar.jedis-2.9.0.jar 测试环境: Redis 3.2 ...
- Dubbo 系列(07-4)集群容错 - 集群
BDubbo 系列(07-4)集群容错 - 集群 [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 集群容错 - 实战 D ...
- 使用Spring Data ElasticSearch+Jsoup操作集群数据存储
使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...
- Dubbo 系列(07-5)集群容错 - Mock
Dubbo 系列(07-5)集群容错 - Mock [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 实战 - 服务降级 ...
- Dubbo 系列(07-3)集群容错 - 负载均衡
目录 Dubbo 系列(07-3)集群容错 - 负载均衡 Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 1.1 负载均衡算法 1.2 继承体系 2. 源码分析 ...
- Dubbo 系列(07-2)集群容错 - 服务路由
目录 Dubbo 系列(07-2)集群容错 - 服务路由 1. 背景介绍 1.1 继承体系 1.2 SPI 2. 源码分析 2.1 创建路由规则 2.2 RouteChain 2.3 条件路由 Dub ...
- Dubbo 系列(07-1)集群容错 - 服务字典
Dubbo 系列(07-1)集群容错 - 服务字典 [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 本篇文章,将开始分析 Dubbo 集群容错方面的 ...
- Elasticsearch使用系列-Docker搭建Elasticsearch集群
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...
- Java操作redis客户端Jedis连接集群(Cluster)
创建JedisCluster类连接redis集群. @Test public void testJedisCluster() throws Exception { //创建一连接,JedisClust ...
随机推荐
- Xcode iOS9.3 配置包 iOS10.0 配置包 iOS10.2 配置包 could not find developer disk image
在Finder状态下前往目录.快捷键:shift+command+G,填写路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS ...
- android动态控制组件的位置、大小和新的动画
一.动态设置组件的位置 当中view是须要改变位置的控件,top是须要设制的位置: private static void setLayoutX(View view,int top) { //克隆v ...
- C++中使用Json的方法
使用 C++ 处理 JSON 数据交换格式 一.摘要 JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON官 ...
- 使用heartbeat+monit实现主备双热备份系统
一.使用背景 项目须要实现主备双热自己主动切换的功能,保证系统7*24小时不间断执行.现已有两台双网卡的IBM的server,为了不再添加成本採购独立外部存储设备和双机热备软件.採用了linux下开源 ...
- C# 实现WEBSOCKET聊天应用示例
C# 实现WEBSOCKET聊天应用示例 http://blog.163.com/da7_1@126/blog/static/10407267820121016103055506/ 2012-11-1 ...
- web 开发之js---巧用iframe实现jsp无刷新上传文件
首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是 ...
- 【bzoj4034】[HAOI2015]T2
siz[v]表示以v为根的子树的节点数 top[v]表示v所在的重链的顶端节点 fa[v]表示v的父亲 pos[v]表示v的父边标号 mx[v]表示v的子树中边的标号最大的那条边 参考:http:// ...
- 单条insert
ugc_l = browser.find_elements_by_class_name('ugc-item') try: myl = [{'statistics': i.text.replace('阅 ...
- Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=
[SQL]SELECT username,password,toutiao_uidFROM pwdtab pLEFT JOIN toutiao_action_article aON p.toutiao ...
- SQl 事物+视图+游标+索引+锁
一:事务: 是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),事务是恢复和并发控制的基本单位. 事务的四个特性:ACID A:atomicity 原子性,事务里的所有操作都是一体的,要 ...