zoukankan      html  css  js  c++  java
  • redis集群搭建手册

    搭建集群需要用到安装后的redis单机版的bin目录,所以我们先搭建redis单机版

    Redis机版搭建:

    • 因为需要安装redis源码包,所以我们需要gcc环境支持 :
    • 使用FTP工具将压缩/usr/local,并解: tar -zxvf redis-3.2.9.tar.gz
    • 入解后的文件夹内:cd /usr/local/redis-3.2.9,编译并指定安装目录:

            make PREFIX=/usr/local/redis install,这里我指定的目录为: /usr/local/redis

    •   安装完毕之后,我们进入到redis文件夹内,发现已经生成了一个bin目录,我们打开它
    • 启动redis服务有两种方式:
    • 前端模式启动 : ./redis-server , 这样的话开启服务之后除非关闭服务,否则你将不能进行其它操作
    • 后端模式启动(推荐) : 从redis解压包中拷贝redis.conf文件到bin目录 :

           cp /usr/local/redis-3.2.9/redis.conf  /usr/local/redis

           编辑redis.conf : vim redis.conf

           输入/deamonize查找,找到后按i进入编辑模式,更改daemonize为yes,

           修改完毕后:wq保存

           现在就可以以后台模式启动了: ./redis-server redis.conf

    Redis集群版搭建

    •  Redis集群管理工具redis-trib.rb依赖ruby环境,首先我们需要安装ruby环境 :

      yum install ruby

      yum install rubygems

         安装ruby和redis的接口程序:

         gem install redis

    •  在/usr/local下创建redis-cluster文件夹,并在内创建6个子文件夹

      mkdir redis-cluster

          cd redis-cluster

          mkdir 700{1..6}

         

    • 将单机版redis安装后的bin目录拷贝6份,各放一份放入上列6个文件夹内

      cp -r bin ../redis-cluster/7001

      ……………………………………...2

    • 修改各个文件夹下的redis.conf文件,打开开启集群注释

       

          修改端口号,和文件夹名一一对应

          

    • 拷贝集群管理工具到redis-cluster文件夹下

      cp /usr/local/redis-3.2.9/src/redis-trib.rb /usr/local/redis-cluster

    • 启动这6台redis服务

         

    • 创建集群,在redis-cluster目录下运行:

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

                 说明 :

         ./redis-trib.rb创建集群插件

          Create 创建集群命令

         --replicas 1 每一个主服务器必须至少有一个备服务器

    • 如果出现下列提示,说明集群已经创建成功

        

    Redis集群版常用操作

    • 登录集群

         ./redis-cli –c –h host –p port

         

     

    • 查看集群状态

        cluster info

        

    • 查看集群节点信息

       cluster nodes

       

     

    • 动态添加新的集群节点(7007服务必须是处在启动状态)

        ./redis-trib.rb add-node 172.18.103.142:7007 172.18.103.142:7001

       add-node : 添加节点命令,默认添加主节点

       172.18.103.142:7007 需要添加的节点

       172.18.103.142:7001 添加7001所在的节点上面去

       添加成功如下图:

       

    • 新增加节点为主节点,但并未分配hash槽

        1)重新分配slots

        

        2)想要移动多少个槽位?

       

        3)输入需要分配的节点的ID

       

        4)输入all,表示从所有主节点中随机转移

       

     

    • 为主节点添加新的从节点(新的节点服务必须处于启动状态)

       

        ./redis-trib.rb add-node --slave --master-id fff5cd34dd6206e51fb59ee2bab43399508af913 172.18.103.142:7008 172.18.103.142:7001

       1)    add-node:添加节点

       2)    –slave :添加从节点

       3)    --master-id fff5cd34dd6206e51fb59ee2bab43399508af913:给这个ID对应的主节点添加从节点

       4)    172.18.103.142:7008:需要添加的从节点

       5)    172.18.103.142:7001:添加到7001对应的集群

     

       下图表示添加成功

       

     

    Jedis客户端连接redis集群

       //配置连接池

            JedisPoolConfig poolConfig = new JedisPoolConfig();

            //设置最大连接数

            poolConfig.setMaxTotal(20);

            //设置最大空闲数

            poolConfig.setMaxIdle(2);

           

            Set<HostAndPort> nodes = new HashSet<HostAndPort>();

            //添加8个节点对应的IP以及端口号

            nodes.add(new HostAndPort("172.18.103.142", 7001));

            nodes.add(new HostAndPort("172.18.103.142", 7002));

            nodes.add(new HostAndPort("172.18.103.142", 7003));

            nodes.add(new HostAndPort("172.18.103.142", 7004));

            nodes.add(new HostAndPort("172.18.103.142", 7005));

            nodes.add(new HostAndPort("172.18.103.142", 7006));

            nodes.add(new HostAndPort("172.18.103.142", 7007));

            nodes.add(new HostAndPort("172.18.103.142", 7008));     

            //创建一个集群核心对象:JedisCluster

            JedisCluster jedisCluster = new JedisCluster(nodes, poolConfig);

            //设置参数

            jedisCluster.set("username", "xufang");

            //查询参数

            String username = jedisCluster.get("username");

            System.out.println(username);

  • 相关阅读:
    springmvc
    POJ 3683 Priest John's Busiest Day
    POJ 3678 Katu Puzzle
    HDU 1815 Building roads
    CDOJ UESTC 1220 The Battle of Guandu
    HDU 3715 Go Deeper
    HDU 3622 Bomb Game
    POJ 3207 Ikki's Story IV
    POJ 3648 Wedding
    HDU 1814 Peaceful Commission
  • 原文地址:https://www.cnblogs.com/xiaoxu233/p/7027259.html
Copyright © 2011-2022 走看看