centos8搭建Redis6集群

Redis简介

Redis是什么:
Redis 是一个使用ANSI C编写的、完全开源的、遵守 BSD 协议、包含多种数据结构、支持网络、基于内存、可选持久性的、高性能的 key-value 数据库。是现在最受欢迎的 NoSQL 数据库之一,上面说的高并发导致宕机的问题,我们一般都会引入 Redis 来解决。

Redis的优势:

  • 性能极高-- Redis 读的速度是110000次/s,写的速度是81000次/s。
  • 丰富的数据类型-- Redis 支持二进制案例的 Strings、Lists、Hashes、Sets、Ordered Sets 及 Steams数据类型操作。
  • 原子-- Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。
  • 丰富的特性-- Redis 还支持 publish/subscribe、通知、key 过期等特性。

CentOS8搭建Redis6集群

环境:

操作系统:CentOS8
Redis版本:6.0.9
IP:10.0.0.56 主节点端口:6001 从节点端口:6002
IP:10.0.0.57 主节点端口:6003 从节点端口:6004
IP:10.0.0.58 主节点端口:6005 从节点端口:6006

1.创建Redis目录(三台主机执行同样操作)

mkdir -p /data/redis6
cd /data/redis6

2.下载Redis(三台主机下载)

# 官网下载:
wget https://download.redis.io/releases/redis-6.0.9.tar.gz
# 华为镜像网站下载:
wget https://mirrors.huaweicloud.com/redis/redis-6.0.9.tar.gz
# 查看:
ll -h
总用量 2.2M
-rw-r--r--. 1 root root 2.2M 10月 27 2020 redis-6.0.9.tar.gz

3.解压并编译安装(三台主机执行)

# 解压:
tar -zxvf redis-6.0.9.tar.gz
# 进入解压后的目录编译安装
cd /data/redis6/redis-6.0.9/
# PREFIX的值:/usr/local/redis这个是安装目录,可以改成自己想要的安装目录。
make PREFIX=/usr/local/redis install
# 编译安装完成之后可以看到我们的安装目录(/usr/local/redis)下就有了bin这个目录
ll /usr/local/redis/
总用量 0
drwxr-xr-x. 2 root root 134 3月  17 10:59 bin

执行make报错解决
报错:
在这里插入图片描述
安装gcc:

yum -y install gcc

再次执行make,报错:
在这里插入图片描述
解决办法:

make MALLOC=libc
make PREFIX=/usr/local/redis install

4.创建存放集群节点的目录

# 创建redis6-cluster目录
mkdir -p /usr/local/redis6-cluster
# 查看
ll /usr/local

在这里插入图片描述
5.配置集群文件

(1)操作10.0.0.56

# 切换目录到/usr/local
cd /usr/local/
# 复制redis下bin目录文件到redis6-cluster/redis6001
cp -r redis/bin/ redis6-cluster/redis6001
# 查看
cd redis6-cluster/
[root@localhost redis6-cluster]# ls redis6001/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

# 复制解压后文件夹下面的redis.conf到/usr/local/redis6-cluster/redis6001/
cp /data/redis6/redis-6.0.9/redis.conf /usr/local/redis6-cluster/redis6001/
# 查看
[root@localhost redis6-cluster]# ls redis6001/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server

修改/usr/local/redis6-cluster/redis6001文件夹下redis.conf配置文件
1.端口号修改为:6001。2.开启集群创建模式,打开注释即可,cluster-enabled yes表示启用cluster。3.修改bind地址为:0.0.0.0。4.修改redis最大占用内存为512mb。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在redis6-cluster目录下复制redis6001文件夹并修改配置文件为对应端口

# 切换到redis6-cluster目录
cd /usr/local/redis6-cluster
# 复制一个redis6002文件
cp -r redis6001/ redis6002
# 查看
cd redis6002/
[root@localhost redis6002]# ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server

修改redis6002文件夹下的redis.conf端口为6002

vim /usr/local/redis6-cluster/redis6002/redis.conf

在这里插入图片描述
(2)操作10.0.0.57

# 切换目录到/usr/local
cd /usr/local/
# 复制redis下bin目录文件到redis6-cluster/redis6003
cp -r redis/bin/ redis6-cluster/redis6003
# 查看
cd redis6-cluster/
[root@localhost redis6-cluster]# ls redis6003/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

# 复制解压后文件夹下面的redis.conf到/usr/local/redis6-cluster/redis6003/
cp /data/redis6/redis-6.0.9/redis.conf /usr/local/redis6-cluster/redis6003/
# 查看
[root@localhost redis6-cluster]# ls redis6003/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server

修改/usr/local/redis6-cluster/redis6003文件夹下redis.conf配置文件(同第一台操作,修改端口)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在redis6-cluster目录下复制redis6003文件夹并修改配置文件为对应端口

# 切换到redis6-cluster目录
cd /usr/local/redis6-cluster
# 复制一个redis6004文件
cp -r redis6003/ redis6004
# 查看
cd redis6004/
[root@localhost redis6004]# ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server

修改redis6004文件夹下的redis.conf端口为6004

vim /usr/local/redis6-cluster/redis6004/redis.conf

在这里插入图片描述
(3)操作10.0.0.58

# 切换目录到/usr/local
cd /usr/local/
# 复制redis下bin目录文件到redis6-cluster/redis6005
cp -r redis/bin/ redis6-cluster/redis6005
# 查看
cd redis6-cluster/
[root@localhost redis6-cluster]# ls redis6005/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

# 复制解压后文件夹下面的redis.conf到/usr/local/redis6-cluster/redis6005/
cp /data/redis6/redis-6.0.9/redis.conf /usr/local/redis6-cluster/redis6005/
# 查看
[root@localhost redis6-cluster]# ls redis6005/
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server

修改/usr/local/redis6-cluster/redis6005文件夹下redis.conf配置文件(同第一台操作,修改端口)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在redis6-cluster目录下复制redis6005文件夹并修改配置文件为对应端口

# 切换到redis6-cluster目录
cd /usr/local/redis6-cluster
# 复制一个redis6006文件
cp -r redis6005/ redis6006
# 查看
cd redis6006/
[root@localhost redis6006]# ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server

修改redis6006文件夹下的redis.conf端口为6006

vim /usr/local/redis6-cluster/redis6006/redis.conf

在这里插入图片描述
6.启动 redis 节点
创建10.0.0.56启动脚本:

vim start-redis.sh
#!/bin/bash
cd /usr/local/redis6-cluster/redis6001
./redis-server redis.conf &
cd /usr/local/redis6-cluster/redis6002
./redis-server redis.conf &
# 脚本加入执行权限
chmod +x start-redis.sh
# 启动redis
./start-redis.sh

创建10.0.0.57启动脚本:

vim start-redis.sh
#!/bin/bash
cd /usr/local/redis6-cluster/redis6003
./redis-server redis.conf &
cd /usr/local/redis6-cluster/redis6004
./redis-server redis.conf &
# 脚本加入执行权限
chmod +x start-redis.sh
# 启动redis
./start-redis.sh

创建10.0.0.58启动脚本:

vim start-redis.sh
#!/bin/bash
cd /usr/local/redis6-cluster/redis6005
./redis-server redis.conf &
cd /usr/local/redis6-cluster/redis6006
./redis-server redis.conf &
# 脚本加入执行权限
chmod +x start-redis.sh
# 启动redis
./start-redis.sh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Running in cluster mode 表示集群模式
7.创建集群

./redis-cli --cluster create 10.0.0.56:6001 10.0.0.56:6002 10.0.0.57:6003 10.0.0.57:6004 10.0.0.58:6005 10.0.0.58:6006 --cluster-replicas 1

在这里插入图片描述
[OK] All 16384 slots covered. 表示16384个槽位全部分配完毕。
在这里插入图片描述
在这里插入图片描述
至此redis集群搭建完成。从图中可以看到每个节点所分配的slots(哈希槽),这里总共6个节点,其中3个是从节点,所以3个主节点分别映射了0-5460 5461-10922 10923-16383solts。
7.测试集群
连接集群中任一节点即可:

[root@localhost redis6001]# ./redis-cli -c -h 10.0.0.57 -p 6003

从图中可以看出集群中节点是自动跳转的,这是因为加了-c选项,如果不加节点之间是无法自动跳转的。
在这里插入图片描述
查看集群中节点的信息

cluster nodes

在这里插入图片描述
查看当前集群信息

cluster info

在这里插入图片描述
查看主节点

./redis-cli -p 6001 cluster nodes |grep master

可以看出10.0.0.56:6001 10.0.0.57:6003 10.0.0.58:6005是主节点。
在这里插入图片描述
8.redis集群节点加入systemctl管理设置为开机自启
上面已经有启动脚本,现在再编写停止redis的脚本

vim stop-redis.sh

#!/bin/bash
ps aux|grep redis|awk '{print $2}'|xargs kill -15
# 加入执行权限
chmod +x stop-redis.sh
./stop-redis.sh
# 查看
ps aux|grep redis

在这里插入图片描述
创建redis-cluster.service服务文件

vim /etc/systemd/system/redis-cluster.service

[Unit]
Description=Redis6Cluster
After=network.target

[Service]
Type=forking
ExecStart=sh /usr/local/redis6-cluster/start-all-redis.sh
ExecStop=sh /usr/local/redis6-cluster/stop-all-redis.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# 重新加载服务列表
systemctl daemon-reload
# 停止redis进程
systemctl stop redis-cluster.service
# 启动redis进程
systemctl start redis-cluster.service
# 查看服务状态
systemctl status redis-cluster.service
# 设为开机自启
systemctl enable redis-cluster.service
# 查看是否加入自启项
systemctl list-unit-files | grep redis

在这里插入图片描述
另外两台同第8步

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值