淘淘商城系列——使用Jedis操做集群

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

./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:700一、192.168.25.128:700二、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命令取得key一、key2的值,以下图所示。
这里写图片描述web

Jedis的使用

链接单机版的Redis

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

<!-- 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”。
这里写图片描述svg