linux搭建redis5.0.5集群完整教程

linux版本的如果没有找到版本下载的,可以下载这个版本

链接:https://pan.baidu.com/s/1OY4yrzkUeJom8A6q-f5GCA 
提取码:t8hf

下载完成之后,进入linux的/usr/local/目录下;使用sudo su切换到root用户来进行操作

使用rz命令将下载的导进当前的目录,使用tar zxvf redis-5.0.5.tar.gz进行解压,生成redis-5.0.5的cd redis-5.0.5进去之后,使用make命令,完成之后使用make install命令,自此redis就安装完成,这里make isntall完成之后会在/usr/local目录下生成一个bin文件夹;

接下来我们在/usr/local目录下新建一个文件夹,cluster-test;cd cluster-test之后,使用mkdir创建六个目录分别是9000,9001,9002,9003,9004,9005一共六个目录;接下来我们cd 进入9000,vi redis.conf;创建redis.conf文件;内容如下:

port 9000
cluster-enabled yes
cluster-config-file cluster-node-9000.conf
cluster-node-timeout 5000
appendonly yes
appendfilename node-9000.aof
dbfilename dump-9000.rdb
protected-mode no
requirepass ligx119
masterauth ligx119

这启动得端口就为9000,并且生成的持久化文件对应的是aof和rdb;关闭了保护模式,使用了密码登录和集群使用gossip通信的时候也需要通过权限验证;

创建好文件之后,使用 cp redis.conf /usr/local/cluster-test/900*;陆续复制到9001,9002,9003,9004,9005目录中,并将里面的端口进行修改。

自此,就完成了;

接下来我们在cluster-test目录下创建start-all.sh文件(启动所有的redis),vi start-all.sh内容如下:

#!/bin/on
ports=(9000 9001 9002 9003 9004 9005)
for port in ${ports[@]}
do
     /usr/local/bin/redis-server ./$port/redis.conf &
done

对这个文件进行赋权:chmod +x start-all.sh

接下来我们创建关闭所有的redis,vi stop-all.sh,内容如下:

#!/bin/sh
ports=(9000 9001 9002 9003 9004 9005)
for port in ${ports[@]}
do
   /usr/local/bin/redis-cli -p $port shutdown &
done

对这个文件进行赋权:chmod +x stop-all.sh

接下来我们再创建一个集群一键启动 vi start-cluster.sh,内容如下:

#!/bin/sh
cd
cd redis-5.0.5/src
redis-cli -a ligx119  --cluster create 127.0.0.1:9000 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 --cluster-replicas 1

这里我是通过单机来进行搭建集群的,3台机器来搭建也是一样的方式

对这个文件进行赋权:chmod +x start-cluster.sh

接下来就是启动redis;命令如下:

sh ./start-all.sh

启动完成之后,使用命令:sh ./start-cluster.sh;完成对所有的集群的搭建;这里会默认前三个ip为master结点,后面的为slave结点。

使用集群客户端方式登录的方式为:

cd /usr/local/redis-5.0.5/src

./ redis cli a ligx119  c h 162.124.130.118   p 9001 
关闭的命令为:
./ redis cli a ligx119  c h 162.124.130.118   p 9001 shutdown
查看集群信息:cluster nodes
查看结点列表:cluster nodes

注意:需要关闭防火墙:

  # 关闭防火墙
  # systemctl stop firewalld # 临时关闭防火墙
  # systemctl disable firewalld # 禁止开机启动
gossip通信默认在redis的端口上加一万,如果不熟悉这一块最好是关闭了防火墙
这样,我们的redis集群就搭建完成,3个master和3slave模式。
接下来,我们测试增加2个结点,进行横向扩展:
在cluster-test创建两个目录9006,9007
并且将9000的redis.conf服务过来这里面并修改成对应的9006,9007
编写9006,9007redis后台启动脚本:start-9006-9007.sh;内容如下:
#!/bin/on
ports=(9006 9007)
for port in ${ports[@]}
do
     /usr/local/bin/redis-server ./$port/redis.conf &
done

进行授权

然后启动该脚本;

接下来编写添加节点脚本:add-nodes9006.sh;add-nodes9007.sh脚本;内容如下


#!/bin/sh
cd
cd redis-5.0.5/src
redis-cli -a ligx119 --cluster add-node 127.0.0.1:9006  127.0.0.1:9001
9007的脚本

#!/bin/sh
cd
cd redis-5.0.5/src
redis-cli -a ligx119 --cluster add-node 127.0.0.1:9007  127.0.0.1:9001

授权之后启动;其实也可以直接cd 到redis-5.0.5/src

然后执行:redis-cli -a ligx119 --cluster add-node 127.0.0.1:9007  127.0.0.1:9001

redis-cli -a ligx119 --cluster add-node 127.0.0.1:9006  127.0.0.1:9001

目前这两个都是master节点,可以使用命令进行查看:

cd / usr / local / redis 5.0.3 / src
. / redis cli a ligx119  c h 192.168.0.61 p 9001
进行之后使用cluster nodes可以查看当前的情况,接下来分配slot,在src目录下操作
./ redis cli a zhuge ‐‐ cluster reshard 192.168.0.61 : 9007
效果如下:
How many slots do you want to move (from 1 to 16384)? 600
(ps:需要多少个槽移动到新的节点上,自己设置,比如600个hash槽)
What is the receiving node ID? 2728a594a0498e98e4b83a537e19f9a0a3790f38
(ps:把这600个hash槽移动到哪个节点上去,需要指定节点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 (ps:输入all为从所有主节点(8001,8002,8003)中分别抽取相应的槽数指定到新节点中,抽取的总槽数为600个)
... ...
Do you want to proceed with the proposed reshard plan (yes/no)? yes
(ps:输入yes确认开始执行分片任务)
配置9006为9007的从节点
cd / usr / local / redis 5.0.5 / src 
./ redis cli a ligx119  c h 192.168.0.61 p 9006
192.168.0.61 : 9006 > cluster replicate 2728 a594a0498e98e4b83a537e19f9a0a3790f38 # 后面这串 id 为9 007 的节点 id
自此就完成了横向扩容
多机部署也是这个思路哈!
多多关注哈哈!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值