redis集群搭建

 

redis集群搭建

redis安装步骤
tar xf redis-5.0.8.tar.gz -C /usr/local/
cd /usr/local/
cd redis-5.0.8/
make
make test
yum -y install tcl
make test
make install
mkdir /redis_cluster
cd /redis_cluster/
ll
mkdir redis{7000..7007}
ll
cp /usr/local/redis-5.0.8/redis.conf ./redis7000/
vim ./redis7000/redis.conf

 

redis.conf

port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //改为其他节点机器可访问的ip 可以使用ifconfig查看一下
daemonize    yes                               //redis后台运行
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行修改

 

##分别配置各节点所需配置文件
sed 's/7000/7001/g' redis.conf >/redis_cluster/redis7001/redis.conf
sed 's/7000/7002/g' redis.conf >/redis_cluster/redis7002/redis.conf
sed 's/7000/7003/g' redis.conf >/redis_cluster/redis7003/redis.conf
sed 's/7000/7004/g' redis.conf >/redis_cluster/redis7004/redis.conf
sed 's/7000/7005/g' redis.conf >/redis_cluster/redis7005/redis.conf
sed 's/7000/7006/g' /redis_cluster/redis7000/redis.conf >/redis_cluster/redis7006/redis.conf
sed 's/7000/7006/g' /redis_cluster/redis7000/redis.conf >/redis_cluster/redis7007/redis.conf

 

##分别启动redis服务
[root@redis ~]#redis-server /redis_cluster/redis7000/redis.conf 
[root@redis ~]#redis-server /redis_cluster/redis7001/redis.conf 
[root@redis ~]#redis-server /redis_cluster/redis7002/redis.conf 
[root@redis ~]#redis-server /redis_cluster/redis7003/redis.conf 
[root@redis ~]#redis-server /redis_cluster/redis7004/redis.conf 
[root@redis ~]#redis-server /redis_cluster/redis7005/redis.conf

 

在这里插入图片描述

[root@redis ~]#/usr/local/bin/redis-cli --cluster create 192.168.53.6:7000 192.168.53.6:7001 192.168.53.6:7002 192.168.53.6:7003 192.168.53.6:7004 192.168.53.6:7005 --cluster-replicas 1        //后面指定数字1 就是一主带一从,如果是2 就是一主两从

 

在这里插入图片描述

##从节点不分配槽位

##增加节点
redis-cli --cluster --help    //查看集群命令用法选项
首先启动几点服务器
[root@redis ~]# redis-server /redis_cluster/redis7006/redis.conf
[root@redis ~]# redis-server /redis_cluster/redis7007/redis.conf
[root@redis ~]# redis-cli --cluster add-node 192.168.53.6:7006 192.168.53.6:7003    //后面加的节点可以是随便集群里的节点,集群中的节点已相互认识,所以这个目的主要是meet的过程

 

新增进来默认主节点,,,可以使用选项指定增加从节点

在这里插入图片描述

##增加从节点,并指定为谁的从节点
[root@redis ~]# redis-cli --cluster add-node 192.168.53.6:7007 192.168.53.6:7003 --cluster-slave --cluster-master-id d6e5fb707569777faee6453f42d99e541b62a2ac

 

在这里插入图片描述

### -c 选项代表以集群方式登录

迁移槽和数据

  • 槽迁移计划

    • 语法:redis-cli --cluster reshard 已存在节点IP:端口
    • redis-cli --cluster reshard 192.168.53.6:7002
  • 迁移数据

    • 执行流程:提示分配多少槽–》接收节点ID–》all/done

      [root@lb redis_cluster]# redis-cli --cluster reshard 192.168.53.6:7002
      >>> Performing Cluster Check (using node 192.168.53.6:7002)
      M: 7714e982654f9150f27e2e166dab532e61854aab 192.168.53.6:7002
         slots:[11089-16383] (5295 slots) master
         1 additional replica(s)
      S: 3dd9e0a6d413eb0582d4b039e7b2ec25a174add9 192.168.53.6:7007
         slots: (0 slots) slave
         replicates d6e5fb707569777faee6453f42d99e541b62a2ac
      S: 69066cbbef97b47c4ac597d971f8919e591049ab 192.168.53.6:7005
         slots: (0 slots) slave
         replicates 7714e982654f9150f27e2e166dab532e61854aab
      S: e5d1f88def599163e4e598a654c3de7a6568baef 192.168.53.6:7003
         slots: (0 slots) slave
         replicates 25b211495aef9f5b8b4dd5320695417367b652e8
      M: 5db4ceb0497b1eb11d94fd20fff0a530126b1021 192.168.53.6:7001
         slots:[5628-10922] (5295 slots) master
         1 additional replica(s)
      S: 26d3d64fe954633ebb81db01dc7865e32b5acb65 192.168.53.6:7004
         slots: (0 slots) slave
         replicates 5db4ceb0497b1eb11d94fd20fff0a530126b1021
      M: d6e5fb707569777faee6453f42d99e541b62a2ac 192.168.53.6:7006
         slots:[0-165],[5461-5627],[10923-11088] (499 slots) master
         1 additional replica(s)
      M: 25b211495aef9f5b8b4dd5320695417367b652e8 192.168.53.6:7000
         slots:[166-5460] (5295 slots) master
         1 additional replica(s)
      [OK] All nodes agree about slots configuration.
      >>> Check for open slots...
      >>> Check slots coverage...
      [OK] All 16384 slots covered.
      How many slots do you want to move (from 1 to 16384)? 500
      What is the receiving node ID? d6e5fb707569777faee6453f42d99e541b62a2ac        //分配得节点ID
      Please enter all the source node IDs.
        Type 'all' to use all the nodes as source nodes for the hash slots.
        Type 'done' once you entered all the source nodes IDs.
      Source node #1: all        //all是所有节点平均分配,也可输入指定节点分配
      ...
      
      

在这里插入图片描述

  • 缩容集群

    • 下线迁移槽

      • 语法:redis-cli --cluster reshard --cluster-from 要迁出节点ID --cluster-to 接收槽节点ID --cluster-slots 迁出得数量 已存在节点ip 端口

      • redis-cli --cluster reshard --cluster-from d6e5fb707569777faee6453f42d99e541b62a2ac --cluster-to 25b211495aef9f5b8b4dd5320695417367b652e8 --cluster-slots 500 192.168.53.6 7000

在这里插入图片描述

  • 忘记节点关闭节点

    • 语法:redis-cli --cluster del-node 已存在节点ip:端口 要删除的节点ID
posted @ 2020-06-09 13:56  太阳的阳ฅ  阅读(180)  评论(0编辑  收藏  举报