Redis 单机多节点部署

redis集群的特点:

1.至少要3主3从。
2.redis的集群不用自己配置主从,集群会根据原则自己分配,分配的原则是:主尽量在不同ip上,从尽量不和主在一个ip上。

下载安装reids:
官方地址:https://redis.io/download

这里选择二进制安装方式。

yum install -y gcc g++ make gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim
wget http://download.redis.io/releases/redis-6.0.4.tar.gz
tar -zxvf redis-6.0.4.tar.gz -C /usr/local
cd /usr/local/
mv redis-6.0.4/ redis 
cd /usr/local/redis

看到如下文件,就可以编译了。
在这里插入图片描述

make            //编译

编译过程中出现一下错误,请看下边解决方案:
在这里插入图片描述
解决方法:升级gcc

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
make install PREFIX=/usr/local/redis         //编译安装并指定到路径

在这里插入图片描述

mkdir /usr/local/redis_cluster      //创建集群目录
cd /usr/local/redis_cluster 
cp /usr/local/redis/redis.conf /usr/local/redis/bin      
cp -r /usr/local/redis/bin /usr/local/redis_cluster/redis01

修改配置文件

cd /usr/local/redis_cluster/redis01/
vim redis.conf
port 7001                           //端口
cluster-enabled yes                 //启用集群模式 开启这个之后会多出个16379的端口
cluster-config-file nodes.conf        //设置对应端口,不输入的话就是默认port端口 
cluster-node-timeout 5000       //超时时间
appendonly yes                 //开启持久化模式
daemonize yes                 //后台运行
protected-mode no             //非保护模式
pidfile /var/run/redis_7001.pid     //防止启动多个进程副本,只启动7001
//知识扩展:进程运行后会给.pid文件加一个文件锁,只有获得该锁的进程才有写入权限(F_WRLCK),把自身的pid写入该文件中,其他试图获得该锁的进程会自动退出。
bind 192.168.10.50                //127.0.0.1改为本机ip地址
mkdir redis02 redis03 redis04 redis05 redis06
cp -r redis01  redis02
cp -r redis01  redis03
. . . . .
. . . . .
cp -r redis01  redis06
然后修改配置文件:分别修改redis02 ~ redis06 的 redis.conf下的port 和 pidfile 和cluster-config-file 。这里不做过多的演示。

启动节点
两种启动方式:

一. 手动启动方试:

cd  /usr/local/redis_cluster
//然后分别进入redis01、redis02、...redis06目录,执行: ./redis-server ./redis.conf

二.用脚本一次性启动

vim start_redis.sh
#!/bin/bash
for i in {1..6};
do
cd redis0$i;
./redis-server redis.conf;
cd ..;
done
chmod +x start_redis.sh
./start_redis.sh

看到这个就成功了
在这里插入图片描述
查看下进程:

[root@TEST redis_cluster]# ps -ef | grep redis
root      47552      1  0 11:08 ?        00:00:00 ./redis-server 192.168.10.51:7002 [cluster]
root      47843      1  0 11:14 ?        00:00:00 ./redis-server 192.168.10.51:7001 [cluster]
root      47851      1  0 11:14 ?        00:00:00 ./redis-server 192.168.10.51:7003 [cluster]
root      47853      1  0 11:14 ?        00:00:00 ./redis-server 192.168.10.51:7004 [cluster]
root      47859      1  0 11:14 ?        00:00:00 ./redis-server 192.168.10.51:7005 [cluster]
root      47861      1  0 11:14 ?        00:00:00 ./redis-server 192.168.10.51:7006 [cluster]
root      47894  36245  0 11:14 pts/0    00:00:00 grep --color=auto redis

启动集群:

cp /usr/local/redis/src/redis-cli   /usr/local/redis_cluster
redis-cli --cluster create 192.168.10.51:7001 192.168.10.51:7002 192.168.10.51:7003 192.168.10.51:7004 192.168.10.51:7005 192.168.10.51:7006 --cluster-replicas 1      //一定要加上 1 作为从节点个数,这里配置为1 是说每个主节点加上一个从节点
这里版本使用的是5.0以上版本,5.0以下版本集群启动方式,请参考其它文档。

启动过程
在这里插入图片描述
在这里插入图片描述

到这里集群就搭建结束了。以下为扩充知识。
关闭集群

手动关闭集群:

./redis-cli -c -h 192.168.10.51 -p 7001 shutdown   -a访问服务端密码
· · · · ·                                          -c表示集群模式
· · · · ·                                          -h指定ip地址
./redis-cli -c -h 192.168.10.51 -p 7006 shutdown   -p指定端口号

脚本关闭集群:

vim shutdown_redis.sh
#!/bin/bash
ip="192.168.10.51"
for i in {7001..7006};
do
./redis-cli -c -h $ip -p $i shutdown;
done
chmod +x shutdown_redis.sh 
./shutdown_redis.sh        //关闭集群

启动集群脚本:

vim redis_cluster.sh
#!/bin/bash
ip="192.168.10.51"
for i in {1..6};
do
cd redis0$i;
./redis-server redis.conf;
cd ..;
done
redis-cli --cluster create $ip:7001 $ip:7002 $ip:7003 $ip:7004 $ip:7005 $ip:7006 --cluster-replicas 1
chmod +x  redis_cluster.sh
./redis_cluster.sh

测试集群状态

cd /usr/local/redis_cluster
./redis-cli -h 192.168.10.51 -p 7002 -c  //进入redis
192.168.10.51:7002> cluster nodes       //查看集群节点信息
192.168.10.51:7002> cluster info        //查看集群状态信息
设置主从密码

redis01~redis06 修改redis.conf文件:

masterauth 123456                     //主从密码
requirepass 123456                   //访问密码

重启服务,并测试:

redis01/redis-cli -h 192.168.10.51 -p 7002 -c
192.168.10.51:7002> cluster nodes 
NOAUTH Authentication required       //这里提示 “不需要身份证验证”
192.168.1.181:7001> auth 123456      //输入密码成功登录
OK
192.168.1.181:7001> cluster nodes    //在测下,命令就能用了

猜你喜欢

转载自blog.csdn.net/Xiao_Xiao_Niao_/article/details/106627645