准备三台虚拟机
下面步骤需要在三台机器上执行 我就其中一台为例,记得修改配置
每一台机器上安装master和slave
3个master 3个slave
1、配置主机名
vim /etc/hosts
192.168.225.128 master
192.168.225.131 node1
192.168.225.132 node2
2、关闭防火墙
[root@node1 html]# systemctl stop firewalld
[root@node1 html]# systemctl disable firewalld
3、下载redis安装包到/usr/local/src (我是安装的redis6版本以上) 下载地址 Index of /releases/
cd /usr/local/src
-rw-r--r--. 1 root root 2476542 Oct 4 2021 redis-6.2.6.tar.gz
4、安装gcc依赖
因为使用的是6版本以上,需要安装gcc5以上版本可以二进制安装或者yum安装
源码包 下载地址 Index of /gnu/gcc
以下是yum安装方法
yum -y install gcc tcl
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
gcc -v 查看版本
版本是根据 9来决定的 你要下载其他版本 可以把9 改成 7或者8
如果版本没有变化,执行 echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
在进行查看 gcc -v
5、安装redis
#解压
tar -xvf redis-6.2.6.tar.gz -C /usr/local
cd redis-6.2.6
make MALLOC=libc
make install PROFIX=/usr/local/redis
cd /usr/local/redis/bin
[root@node1 bin]# ll
total 8528
-rwxr-xr-x. 1 root root 152 May 10 21:53 cluster_start.sh
-rwxr-xr-x. 1 root root 52 May 10 21:54 cluster_stop.sh
-rwxr-xr-x. 1 root root 958896 May 10 19:46 redis-benchmark
lrwxrwxrwx. 1 root root 12 May 10 19:46 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root 12 May 10 19:46 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 1204784 May 10 19:46 redis-cli
lrwxrwxrwx. 1 root root 12 May 10 19:46 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 6552312 May 10 19:46 redis-server
#新建目录
cd /usr/local/redis/
mkdir conf && mkdir data && mkdir log && make run
[root@node1 redis]# ll
total 0
drwxr-xr-x. 2 root root 181 May 10 21:54 bin
drwxr-xr-x. 2 root root 50 May 10 21:56 conf
drwxr-xr-x. 3 root root 18 May 10 21:04 data
drwxr-xr-x. 2 root root 50 May 10 21:56 log
drwxr-xr-x. 2 root root 50 May 10 21:56 run
#修改配置文件 7000是文件端口号方便识别
cp /usr/local/redis-6.2.6/redis.conf /usr/local/redis/conf/redis-7000.conf
vim /usr/local/redis/conf/
修改ip 进入文件 使用 :set nu 显示文件行数
将 75注释 新增76
75 #bind 127.0.0.1 -::1
76 bind 0.0.0.0
#修改端口号
99 port 7000
#开启守护进程
258 daemonize yes
因为现在的实例安装的是7000 记得文件名也根据端口修改而修改
#pid存储目录
290 pidfile /usr/local/redis/run/redis_7000.pid
#log日志存储目录
303 logfile /usr/local/redis/log/redis_7000.log
#数据目录
mkdir -p /usr/local/redis/data/7000
455 dir /usr/local/redis/data/7000
#开启集群
1386 cluster-enabled yes
#集群节点配置文件,确定每个节点名称不一样
1394 cluster-config-file nodes-7000.conf
#AOF持久化
1253 appendonly yes
5、新建i启动脚本、停止脚本
cd /usr/local/redis/bin/cluster_start.sh
#!/bin/bash
basedir=`dirname $0` #获取当前目录
echo "Redis BASE dir:$basedir"
cd $basedir
./redis-server ../conf/redis7000.conf
./redis-server ../conf/redis7001.conf
#wq保存退出
chmod +x /usr/local/redis/bin/cluster_start.sh
cd /usr/local/redis/bin/cluster_stop.sh
#!/bin/bash
pgrep redis-server |xargs -exec kill -9 #过滤出redis全部pid
chmod +x /usr/local/redis/bin/cluster_stop.sh
以上操作在3台节点都都安装部署完成后
开始创建redis集群
./redis-cli --cluster create 192.168.225.128:7000 192.168.225.131:7000 192.168.225.132:7000 192.168.225.128:7001 192.168.225.131:7001 192.168.225.132:7001 --cluster-replicas 1
--cluster-replicas 1 希望每个服务器都有一主一从
验证
[root@node1 bin]# ./redis-cli -c -h 192.168.225.131 -p 7000 cluster nodes
0763365eaf12ca42c648495680bce2523e4da3a1 192.168.225.128:7000@17000 master - 0 1683862327000 1 connected 0-5460
bae399e402ec1642527b7d2a953ddbde2adcca2a 192.168.225.132:7001@17001 slave a72b4b7ecb760a6ccc1bd1555d9d2b4eaddec465 0 1683862324994 2 connected
cf698d9d658e1f4797f8f84a74e5c78fe28a5838 192.168.225.132:7000@17000 master - 0 1683862327138 3 connected 10923-16383
73cc1b4b3f749741d4c86a11b525f7c697ad51fe 192.168.225.131:7001@17001 slave 0763365eaf12ca42c648495680bce2523e4da3a1 0 1683862324000 1 connected
a72b4b7ecb760a6ccc1bd1555d9d2b4eaddec465 192.168.225.131:7000@17000 myself,master - 0 1683862325000 2 connected 5461-10922
e27da267b676ffe0f69de53cae010c51bf3f2340 192.168.225.128:7001@17001 slave cf698d9d658e1f4797f8f84a74e5c78fe28a5838 0 1683862325000 3 connected
添加开机自启 自己写的时候注意文件路径 和文件名称
cd /etc/systemd/system
vi redis7000.service
[Unit]
Description=Redid700
[Service]
User=root
Group=root
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis7000.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
PIDFile=/usr/local/redis/run/redis_7000.pid
[Install]
WantedBy=multi-user.target
vi redis7001.service
[Unit]
Description=Redis In-Memory Data Store
[Service]
User=root
Group=root
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis7001.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
PIDFile=/usr/local/redis/run/redis_7001.pid
[Install]
WantedBy=multi-user.target
加入开机自启
systemctl enable redis7001.service
systemctl enable redis7000.service
重启服务器验证就好