redis集群部署

redis集群部署

本次部署为三台服务器,部署三主集群和三主三从集群

1.IP主从规划

规划IP 主机名
192.168.2.57 master
192.168.2.197 slaves1
192.168.2.43 slaves2

三个主节点分别是:192.168.2.57:6379、192.168.2.197:6379、192.168.2.43:6379

三个从节点分别是:192.168.2.57:6380、192.168.2.197:6380、192.168.2.43:6380

2.放置redis安装包

将redis安装包上传进master节点的/apps/scripts目录下,实例为:redis-6.0.13.tar.gz

[root@master /]# mkdir -p /apps/scripts
[root@master /]# chmod +x -R /apps/
# 将redis安装包上传到/apps/scripts/目录下

3.依赖安装

[root@master scripts]# yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc

4.解压、编译、安装

[root@master ~]# cd /apps/scripts/
[root@master scripts]# tar -zxf redis-6.0.13.tar.gz -C ./
[root@master scripts]# cd redis-6.0.13
[root@master redis-6.0.13]# make
# 部署redis 6版本依赖与gcc 5.3以上,若gcc版本太低,在编译过程中会报错

redis集群部署_第1张图片
redis集群部署_第2张图片

# 升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilse
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable">> /etc/profile

redis集群部署_第3张图片
再次编译

[root@master redis-6.0.13]# make

已经不存在报错信息
redis集群部署_第4张图片

安装

[root@master redis-6.0.13]# make install

redis集群部署_第5张图片

安装成功

默认安装路径为:/usr/local/bin/

redis集群部署_第6张图片

5.redis配置

复制安装之后的redis相关文件(master节点)

[root@master redis-6.0.13]# cp /usr/local/bin/redis-* /data/redis-cluster/redis_6379/

编辑redis配置文件(master节点)

[root@master redis-6.0.13]# cp /apps/scripts/redis-6.0.13/redis.conf /data/redis-cluster/redis_6379/
[root@master redis-6.0.13]# cd /data/redis-cluster/redis_6379/
[root@master redis_6379]# vi redis.conf 

修改内容如下:

bind 127.0.0.1 -> bind 192.168.2.57(改为实际内网IP或0.0.0.0)
port 6379保持不变(监听端口)
daemonize no  -> daemonize yes(以独立进程打开)
appendonly no 保持不变(关闭持久化)

取消以下配置文件注释
#cluster-enabled yes
#cluster-config-file nodes-6379.conf
#cluster-node-timeout 15000

取消注释后如下:
cluster-enabled yes  (开启集群模式)
cluster-config-file nodes-6379.conf (生成集群配置文件)
cluster-node-timeout 15000(集群超时时间)

注释以下配置:
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb

注释后如下:
#save 900 1
#save 300 10
#save 60 10000
#dbfilename dump.rdb

设置密码:
#requirepass foobared
#masterauth 

设置为:
requirepass apps123(redis密码)
masterauth apps123(主节点密码,各个实例密码要求一致)

启动redis实例

[root@master redis_6379]# nohup ./redis-server redis.conf >> /dev/null &

[root@master redis_6379]# nohup ./redis-server redis.conf > /dev/null 2>&1 &

redis集群部署_第7张图片

在这里插入图片描述

停止redis实例

[root@master redis_6379]# ps -ef | grep redis
root       6272      1  0 16:30 ?        00:00:00 ./redis-server 192.168.2.57:6379 [cluster]
root       6280   5723  0 16:30 pts/0    00:00:00 grep --color=auto redis
[root@master redis_6379]# kill -9 6272

到此,主节点部署完毕,剩余两个节点方法一致

6.三主模式模式配置

创建redis集群目录(三台服务器都需要创建)

[root@master redis-6.0.13]# mkdir -p /data/redis-cluster/redis_6379

将master节点配置好的redis复制进两个从节点

# 复制前,先将master节点的redis进程结束,删除生成的nodes-6379.conf配置文件
[root@master redis_6379]# rm -rf nodes-6379.conf 
[root@master redis_6379]# scp -r ./* [email protected]:/data/redis-cluster/redis_6379/
[root@master redis_6379]# scp -r ./* [email protected]://data/redis-cluster/redis_6379/

修改两个从节点配置,只需将bind后边的IP为实际的IP

[root@slaves1 ~]# cd /data/redis-cluster/redis_6379/
[root@master redis_6379]# vi redis.conf
# 修改bind 192.168.2.57后边的IP为实际IP

将三个节点的redis都启动之后,进入任意节点,创建三主集群:

# 三个实例全部启动成功之后,选择任意节点执行
[root@slaves1 ~]# cd /data/redis-cluster/redis_6379/
[root@slaves1 ~]# ./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 -a apps123

# 注意,三台实例的redis必须全部启动完成,且服务器之间端口需要能访问(关闭防火墙)

redis集群部署_第8张图片

集群状态检查

[root@slavers2 redis_6379]# ./redis-cli --cluster check 192.168.2.57:6379 -a apps123

[root@slavers2 redis_6379]# ./redis-cli --cluster check 172.10.34.20:6379 -a apps123

redis集群部署_第9张图片

至此,redis三主集群配置完成。

7.三主三从模式

停止三个节点的redis进程,删除各节点生成的配置文件。 (以下操作三个节点均需要进行调整)

[root@master redis_6379]# pkill redis
[root@master redis_6379]# rm -rf nodes-6379.conf

复制配置完成的redis_6379文件,将其复制,且修改文件夹名称为:redis_6380

[root@master redis-cluster]# cp -rp redis_6379 redis_6380

切换进redis_6380文件夹,修改redis.conf配置文件中的6379为6380

[root@master redis-cluster]# cd redis_6380/
[root@master redis_6380]# vi redis.conf

注:可使用命令对整个文件进行替换

# 用法详解:
# sed -i 's/str1/str2/g'  filename
# str1: 旧字符 str2: 新字符

[root@master scripts]# sed -i 's/6379/6380/g' redis.conf

启动6个实例,并创建三主三从集群

[root@master ~]# cd /data/redis-cluster/redis_6379/
[root@master redis_6379]# nohup ./redis-server redis.conf >> /dev/null &

[root@master redis_6379]# cd ../redis_6380/
[root@master redis_6380]# nohup ./redis-server redis.conf >> /dev/null &

redis集群部署_第10张图片

# 六个实例全部启动成功之后,创建三主三从集群(任意节点的任意服务下执行即可)
[root@master redis_6380]# ./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 192.168.2.57:6380 192.168.2.197:6380 192.168.2.43:6380 --cluster-replicas 1  -a apps123

redis集群部署_第11张图片

集群状态检查

[root@slavers2 redis_6380]# ./redis-cli --cluster check 192.168.2.57:6379 -a apps123

redis集群部署_第12张图片

至此,redis三主三从集群搭建完成,在同时存在三个redis服务时,整体集群不受影响。

切换为主库

# 将新从库重新切换为主库
[root@redis-1 ~]# ./redis-cli -h 192.168.2.57 -p 6379 -a apps123

192.168.2.57:6379> CLUSTER FAILOVER
OK

8.redis升级

实例将redis-6.0-13升级为6.0.17

上传6.0.17安装包至/apps/scripts/,解压、编译、安装(redis集群路径为:/data/redis-cluster/)

1.备份集群路径下的老版本安装文件;

2.在/usr/local/bin/路径下,找到新版本的安装文件,移动进集群目录;

3.将/apps/scripts/redis-6.0.17文件夹下的redis.conf文件复制进/data/redis-cluster/xxxx/文件夹下,并按5中修改redis.conf;

4.停止所有节点的所有redis服务,删除节点下生成的dump.rdb及nodes-xxx.conf;

5.启动redis各个节点的各个进程,使用命令创建三主或三主三从。

9.命令备注

# 启动
nohup ./redis-server redis.conf > /dev/null 2>&1 &

# 创建三主集群
./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 -a apps123

# 创建三主三从集群
./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 192.168.2.57:6380 192.168.2.197:6380 192.168.2.43:6380 --cluster-replicas 1  -a apps123

# 测试集群状态
./redis-cli --cluster check 192.168.2.57:6379 -a apps123

./redis-cli --cluster check 192.168.2.57:6380 -a apps123

你可能感兴趣的:(redis,bootstrap,数据库)