部署Redis Cluster集群并开启密码认证和公网访问

如果只想简单的搭建Redis Cluster,不需要设置密码和公网访问,可以参考官方文档

节点介绍

Cluster模式推荐最少有6个节点,本次实验搭建了6个节点,使用的端口为7000-7005。Cluster模式是数据分开存放在不同的节点上,如果有6个节点,通常设置3个主节点,每个主节点有一个从节点作为备份。正常情况下读写操作的是主节点,从节点会同步主节点的更变。当某个主节点挂了之后,其对应的从节点会变成主节点。如果一段时间后之前挂掉的主节点恢复了,它将变成从节点。如果某个主节点挂了之后,其对应的从节点也挂了,集群将不可访问。即每个主节点相互独立,从节点作为主节点的备份。

下载和编译

下载地址:https://redis.io/download
下载、解压并编译:

wget http://download.redis.io/releases/redis-6.0.5.tar.gz
tar -zxvf redis-6.0.5.tar.gz
cd cd redis-6.0.5
make

坑:6.x版本的Redis需要新版的gcc才能编译,centOS 7 自带的gcc版本为4.8.5,无法完成编译,需要升级版本。
解决方案:

yum install centos-release-scl
yum install devtoolset-9-gcc*
# 仅对当前bash生效
scl enable devtoolset-9 bash

以上操作仅对当bash生效,若想永久生效,按以下操作:

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
source /etc/profile

编译完成后src目录下会生成几个可执行文件redis-benchmark redis-cli redis-sentinel redis-server等。

集群部署

复制文件

新建6个目录,并将redis.confsrc目录中的redis-server复制到每个目录,目录名称可随意,这里采用redis运行时的端口号作为目录的名称。

mkdir -p /usr/local/redis/cluster/7000
cp redis.conf /usr/local/redis/cluster/7000
cp src/redis-server /usr/local/redis/cluster/7000

重复以上操作,最终结果如下图:
在这里插入图片描述

修改配置

修改每个目录中的redis.conf,需要修改配置项如下:

  • bind:0.0.0.0(指定访问的网卡,默认为127.0.01只能本机访问,可以将此项改为0.0.0.0或本机IP,或者直接注释掉此项。)
  • protected-mode:no (是否开启保护模式,开启后只能本机访问。此项默认为yes,需要设置为no。)
  • port:7000(服务运行端口,如果6个节点运行在同一台机器上,每个节点的端口应不相同。)
  • requirepass:123456(访问密码,设置为需要的密码。建议每个节点密码相同。)
  • masterauth:123456(主节点的密码,当从节点从主节点同步数据时,需要提供主节点的密码。一般与访问密码相同。)
  • cluster-enabled :yes(是否开启cluster模式,默认为no,需要设置为yes。)
  • cluster-config-file:nodes.conf (保存cluster中每个节点信息的文件,该文件会自动生成,这里设置的是文件保存的位置。)
  • cluster-node-timeout:5000(超时多长时间后判断节点挂掉。)
  • appendonly:yes(开启AOF持久化)

创建集群

启动每个节点:

./redis-server redis.conf

在这里插入图片描述
创建集群:

./redis-cli --cluster create ip:7000 ip:7001 ip:7002 ip:7003 ip:7004 ip:7005 --cluster-replicas 1 -a 123456

这里的IP是公网IP,-a后面的参数是设置的访问密码,–cluster-replicas后面的参数是每个主节点对应的从节点的数量。
这时会自动分配主从节点,如果确认分配无误,输入yes即可创建cluster。
坑:在cluster模式中,每个节点除了要使用设置的访问端口以外,还需要使用访问端口加10000的端口号进行数据传输,所以在防火墙开放端口时也需要打开对应的端口,否则会出现wait…的提示。
在本例中,需要开放的端口号为7000-7005和17000-17005。

测试集群:
可以使用redis-cli来连接集群,-c代表使用cluster模式。

./redis-cli -c -h localhost -p 7000 -a 14789632

查看集群信息:
在这里插入图片描述
查看节点信息:
在这里插入图片描述

设置公网访问

现在通过公网访问会出现unknown cluster ip:7000的报错信息,这是因为在nodes.conf文件中某些节点的IP是内网IP。解决方法为如下:

  1. 停止每个节点的进程。
  2. 编辑每个节点的nodes.conf文件,将其中的内网IP换成公网IP。
  3. 重新启动每个节点。
展开阅读全文

Windows版YOLOv4目标检测实战:训练自己的数据集

04-26
©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值