zoukankan      html  css  js  c++  java
  • (转)淘淘商城系列——使用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”。 

     
  • 相关阅读:
    Windows配置深度学习环境详细教程(二):conda工具的使用
    Windows配置深度学习环境详细教程(一):安装Pycharm和Miniconda
    性能基准DevOps之如何提升脚本执行效率
    【Go语言绘图】图片添加文字(二)
    Cesium中用到的图形技术——Computing the horizon occlusion point
    Cesium中用到的图形技术——Horizon Culling
    Unity3D学习笔记3——Unity Shader的初步使用
    C++:异常处理
    mysql数据库备份
    编程小工具
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6961565.html
Copyright © 2011-2022 走看看