环境
centos7
redis-5.0.4 通过redis官方在新版本中提供的redis-cli工具快速搭建集群,3主3从架构 ,主节点端口号:7000,从节点:7001
node1 192.168.159.102
node2 192.168.159.103
node3 192.168.159.104
安装步骤
在node1上进行示例
1.解压安装包
tar -zxvf redis-5.0.4.tar.gz
2.编译
进入redis安装目录下的src,输入make编译
cd redis-5.0.4/src/
make
3.创建目录
创建存放集群配置的目录 mkdir cluster
进入该目录cd cluster/
创建开启端口为7000的redis节点目录(主) mkdir 7000
创建开启端口为7001的redis节点目录(从) mkdir 7001
4.创建配置文件
分别创建并编辑7000,7001目录下的配置文件redis.conf,修改主机映射以及对应的端口号,需要修改的配置如下:
vi 7000/redis.conf
# 修改为本机的Ip,如果使用127.0.0.1则只允许本机访问,其他节点无法访问
bind 192.168.159.102
# 端口号
port 7000
# 作为守护进程启动
daemonize yes
# 设置存放pid文件的目录
pidfile /var/run/redis_7000.pid
# 设置日志存放路径
logfile /home/hadoop/redis-5.0.4/cluster/7000/redis.log
# 设置工作目录
dir /home/hadoop/redis-5.0.4/cluster/7000/
# 开启集群
cluster-enabled yes
# 设置配置文件
cluster-config-file nodes-7000.conf
# 设置集群超时时间
cluster-node-timeout 5000
# 开启aof日志
appendonly yes
vi 7001/redis.conf
bind 192.168.159.102
port 7001
daemonize yes
pidfile /var/run/redis_7001.pid
logfile /home/hadoop/redis-5.0.4/cluster/7001/redis.log
dir /home/hadoop/redis-5.0.4/cluster/7001/
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
5.分发redis到其它节点
scp -r redis-5.0.4 root@node2:/home/hadoop/
scp -r redis-5.0.4 root@node3:/home/hadoop/
6.修改每个节点配置文件中对应的ip映射
node2节点
cd /home/hadoop/redis-5.0.4/cluster/
vi 7000/redis.conf
vi 7001/redis.conf
bind 192.168.159.103
node3节点
cd /home/hadoop/redis-5.0.4/cluster/
vi 7000/redis.conf
vi 7001/redis.conf
bind 192.168.159.104
7.启动各个节点的redis
/home/hadoop/redis-5.0.4/src/redis-server /home/hadoop/redis-5.0.4/cluster/7000/redis.conf
/home/hadoop/redis-5.0.4/src/redis-server /home/hadoop/redis-5.0.4/cluster/7001/redis.conf
8.查看各个节点的redis进程
在node1,node2,node3节点执行ps -ef | grep redis查看redis进程相关信息
9.创建redis集群
进入redis的src目录执行指令
./redis-cli --cluster create 192.168.159.102:7000 192.168.159.103:7000 192.168.159.104:7000 192.168.159.102:7001 192.168.159.103:7001 192.168.159.104:7001 --cluster-replicas 1
其中前三个为主节点,后三个为从节点,cluster-replicas的意思是副本为1,即一主一从。
之后按照提示输入yes即可。
运行结果:
10.查看集群状态
./redis-cli --cluster check 192.168.159.102:7000 // 后边redis实例填写任意一个即可
11.关闭集群
redis集群是不能强制关闭的,所以需要通过redis官方给的命令来依次关闭,这里以node1节点的7000端口的redis为例子
redis-cli -h node1 -p 7000 shutdown // -h 是指你运行redis的主机 -p 是指运行redis实例的端口
如果意外关闭导致集群挂掉且无法恢复需要重新搭建则需要删除掉生成的appendonly.aof ,dump.rdb,nodes-7000.conf文件,如果忘记了在哪里可以用 find / -name "appendonly.aof" 指令来查找文件
12.开启redis集群脚本
#!/bin/bash
echo "start redis cluster..."
hosts="node1 node2 node3"
for host in $hosts
do
echo "--------$host--------"
ssh $host "/home/hadoop/redis-5.0.4/src/redis-server /home/hadoop/redis-5.0.4/cluster/7000/redis.conf;
/home/hadoop/redis-5.0.4/src/redis-server /home/hadoop/redis-5.0.4/cluster/7001/redis.conf"
echo "OK!"
done
13.关闭redis集群的脚本
#!/bin/bash
echo "stop redis cluster..."
hosts="node1 node2 node3"
for host in $hosts
do
echo "--------$host--------"
ssh $host "/home/hadoop/redis-5.0.4/src/redis-cli -h $host -p 7000 shutdown;
/home/hadoop/redis-5.0.4/src/redis-cli -h $host -p 7001 shutdown"
echo "OK!"
done