(转)淘淘商城系列——使用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 ...
随机推荐
- yarn-cli 缓存
yarn cache list Yarn 会在你的用户目录下开辟一块全局缓存用以保存下载的包.yarn cache list 用于列出所有已经缓存的包. yarn cache dir 执行 yarn ...
- HDU2577 How to Type【DP】
题目链接: pid=2577">http://acm.hdu.edu.cn/showproblem.php? pid=2577 题目大意: 给你一个仅仅包括大写和小写字母的字符串,如今 ...
- cocos2dx塔防游戏逻辑
cocos2dx 塔防游戏逻辑 1.欢迎界面 2.tield制作游戏地图,空块设置cantouch属性为1 3.设置地图锚点,把锚点增加一个锚点容器,给怪物的行走函数传入 该锚点容器參数,让怪物依照锚 ...
- UTF-8 的中文檔案名上傳問題
在上传文件后,一般都会用 move_uploaded_file() 进行文件移动改名.但是 move_uploaded_file() 并不支持 UTF-8 编码,如果含有,那么函数就会执行失败,但是这 ...
- 【bzoj2282】[Sdoi2011]消防
两次bfs可得直径,答案一定不会小于所有点到直径的距离最大值,只要把直径上的边权设为0,任选直径上一点bfs可得将最大值作为二分下界,二分直径左右端点的舍弃部分 #include<algorit ...
- 【codevs1306】广播操的游戏
求字符串内的非空子串的数量 后缀数组!!! #include<algorithm> #include<cstdlib> #include<cstring> #inc ...
- 【OI】关于快速幂的简单理解
都知道算某个数的幂需要线性的复杂度,为了优化复杂度,就出现了所谓的快速幂. 快速幂的代码很短,但是要原理需要一点心思. 首先,我们知道, a^b = a^c * a^d (c+d=b) 那么,不就可以 ...
- ios33--线程安全
// // ViewController.m // 05-掌握-线程安全 // // 多线程下载文件:每个线程下的部分可能是交错的,到时候就拼接不了.除非每个线程下载的不是交错的,而是从头到尾依次分开 ...
- hdu 5074 Hatsune Miku DP题目
题目传送门http://acm.hdu.edu.cn/showproblem.php?pid=5074 $dp[i][j] =$ 表示数列前$i$个数以$j$结尾的最大分数 $dp[i][j] = - ...
- ThinkAndroid框架
ThinkAndroid简介 ThinkAndroid是一个免费的开源的.简易的.遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单.快速的进行 Android应用程序的开发,包 ...