redis版本:redis-5.0.3.tar.gz

操作系统:完全新安装的centos7.6系统

使用一台虚拟机模拟6个redis节点,3个master,3个slave,虚拟机IP为192.168.220.11

和使用不同的IP创建集群基本过程一致,为了方便,就不创建多个虚拟机了。

开始搭建:



    yum install -y wget gcc
systemctl stop firewalld.service
systemctl disable firewalld.service
cd /opt
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar zxvf redis-5.0.3.tar.gz
mv redis-5.0.3 redis
cd redis


解压后目录结构如下:




 


redis集群搭建详细过程_端口号


image.png


编译安装:



    make MALLOC=libc
make install




 


redis集群搭建详细过程_配置文件_02


image.png


src目录包含了redis server和redis cli的相关命令脚本,将该路径加入到PATH环境变量当中,方便使用



    cd /opt/redis      
mkdir cluster # 创建redis实例根目录
cd cluster
mkdir 7001 # 创建具体redis实例相关目录,指定其端口号为7001
cd 7001
cp /opt/redis/redis.conf . #复制配置文件,修改之后当作当前redis实例的启动配置
mkdir data # 创建数据存储目录


修改配置文件文件,最小化修改配置

下面为需要修改的配置项以及说明

port 7001 # 客户端连接端口

bind 192.168.220.11 #实例绑定的IP地址

dir /opt/redis/cluster/7001/data # redis实例数据配置存储位置

daemonize yes # 是否以后台进程的方式启动redis实例

pidfile pidfile /var/run/redis_7001.pid # 指定该进程pidfile

cluster-enabled yes # 开启集群模式

cluster-config-file # 集群中该实例的配置文件,该文件会在data目录下生成

appendonly yes # 开启aop日志

protected-mode no # 关闭保护模式

requirepass cyclone # master开启密码保护

masterauth cyclone # replica同master交互密码

接下来按照同样的方式创建7002,7003,7004,7005,7006的文件夹,修改配置文件

依次启动redis实例

redis-server /opt/redis/cluster/7001/redis.conf

redis-server /opt/redis/cluster/7002/redis.conf

redis-server /opt/redis/cluster/7003/redis.conf

redis-server /opt/redis/cluster/7004/redis.conf

redis-server /opt/redis/cluster/7005/redis.conf

redis-server /opt/redis/cluster/7006/redis.conf

查看启动结果




 


redis集群搭建详细过程_配置文件_03


image.png


集群的创建,将redis实例联系起来,创建一个集群

redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006

输出如下:




 


redis集群搭建详细过程_redis_04


image.png




 


redis集群搭建详细过程_redis_05


image.png


一些slave和master在相同的物理主机上,所以会出现一些警告,这个不影响。

连接到集群的某个节点:



redis-cli -a cyclone -c -h 192.168.220.11 -p 7001




 


redis集群搭建详细过程_数据存储_06


image.png


查看集群相关信息:




 


redis集群搭建详细过程_数据_07


image.png


查看集群节点信息:




 


redis集群搭建详细过程_数据存储_08


image.png


集群相关操作:

1.关闭集群的某个节点,比如关闭端口号为7001的实例:

redis-cli -a cyclone -c -h 192.168.220.11 -p 7001 shutdown

查看结果




 


redis集群搭建详细过程_数据存储_09


image.png


关闭之后,使用redis-server /opt/redis/cluster/7001/redis.conf命令可以将实例重新启动,启动完成之后,自动加入到集群当中




 


redis集群搭建详细过程_配置文件_10


image.png


2.集群的关闭

逐个关闭redis实例进程即可

查找redis实例进程号



    ps -ef | grep redis




 


redis集群搭建详细过程_数据_11


image.png


关闭redis进程,使用kill -9 ${进程号},如果需要关闭多个进程,进程号之间空格隔开即可



    kill -9 10252 10257 10262 10267 10272 10294


也可执行以下命令来关闭redis进程



    pkill -9 redis


3.redis集群的重新启动

保留原来的数据:

逐个关闭redis实例,再逐个的启动即可。

丢弃原来的数据:

关闭实例,清空实例中数据存放目录的所有内容,然后逐个启动实例,在任意一个实例上执行集群的创建命令即可,本质上就是创建一个新的集群

清空数据存储目录内容:



   rm -rf /opt/redis/cluster/7001/data/*
rm -rf /opt/redis/cluster/7002/data/*
rm -rf /opt/redis/cluster/7003/data/*
rm -rf /opt/redis/cluster/7004/data/*
rm -rf /opt/redis/cluster/7005/data/*
rm -rf /opt/redis/cluster/7006/data/*


启动实例:



  redis-server /opt/redis/cluster/7001/redis.conf
redis-server /opt/redis/cluster/7002/redis.conf
redis-server /opt/redis/cluster/7003/redis.conf
redis-server /opt/redis/cluster/7004/redis.conf
redis-server /opt/redis/cluster/7005/redis.conf
redis-server /opt/redis/cluster/7006/redis.conf


执行集群创建命令:



redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006




学习时的痛苦是暂时的 未学到的痛苦是终生的