由于参与项目的部分功能需要,尝试在内网环境搭建了一Redis集群。安装环境为利用3台CentOS7.5服务器,服务器间可以相互通信。本文利用这3台服务器建设了一6节点的Redis集群,现将创建过程做一简要记录。

1.环境准备

1.1 软件环境及版本

软件名称 版本
CentOS(操作系统) 7.5.1804
Redis 5.0.0
Ruby 2.5.3
Rubygems 2.7.8
Redis.gem 4.0.3

1.2演示服务器IP地址

IP地址
172.16.100.249172.16.100.250172.16.100.251

1.2 防火墙设置

若部署环境允许操作系统关闭防火墙,只需在操作系统层面对每台服务器关闭防火墙即可。shell命令为

1
systemctl stop firewalld.service

之后可利用shell命令检查防火墙状态

1
systemctl status firewalld.service

关闭防火墙后,执行命令

1
systemctl disable firewalld.service

关闭防火墙开机自起。

但是,生产环境大多不允许操作系统裸奔,需要运维人员开启操作系统防火墙。因此,我们部署Redis集群时,还需要手动开放一些端口。

首先我们需要确定Redis各节点部署在哪些端口上。这里我们选择三台服务器的6379及6380端口作为我们的部署端口。
此外,Redis还需要部署端口数值加10000作为通信及集群管理使用。对本例而言即还需开放三台服务器的16379及16380端口。
综上,添加防火墙端口的shell命令为:

1
2
3
4
firewall-cmd --zone=public --add-port=6379/tcp –-permanent
firewall-cmd --zone=public --add-port=16379/tcp --permanent
firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --zone=public --add-port=16380/tcp --permanent

最后我们重新加载一下防火墙:

1
firewall-cmd --reload

1.3 yum本地源配置

若部署环境可连接互联网或有局域网内有yum镜像源,按所选的源镜像配置即可;
这里我们在本地局域网进行部署,不能连接互联网,局域网内也没有可用的yum源镜像,因此需要使用操作系统的安装盘或镜像文件配置本地yum源。
利用scp等工具,先将CentOS7的安装盘的镜像文件上传到服务器上,并在/mnt目录下创建CentOS文件夹作为镜像盘的挂载位置。

1
mkdir /mnt/CentOS

之后挂载镜像光盘

1
mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/CentOS/

ISO镜像挂载好后,我们开始配置yum本地源。
先备份原yum源配置

1
2
cd /etc/yum.repo.d
mv CentOS-Base.repo CentOS-Base.repo.bak

之后创建本地源的配置文件

1
vi CentOS-LocalSource.repo

键盘输入i开始编辑,配置内容如下所示:

[CentOS-LocalSource]
name=CentOS
baseurl=file:///mnt/CentOS
enable=1
gpgcheck=0

编辑好后,按ESC键退出插入模式后输入:wq保存退出。
清除yum的本地缓存,并建立新缓存

1
2
yum clean all
yum makecache

利用yum安装gcc及make等创建Redis需要依赖测试本地yum源是否配置成功

1
2
3
4
yum install gcc
yum install make
yum install zlib
yum install openssl

2.安装单机Redis

利用scp等工具,先将redis的安装文件上传到服务器上。
创建Redis的安装目录

1
mkdir /usr/local/redis

将Redis的安装文件解压到安装目录

1
tar -zxvf redis-5.0.0.tar.gz -C /usr/local/redis

进入到Redis安装文件的解压目录

1
cd /usr/local/redis/redis-5.0.0/

利用make进行安装

1
make PREFIX=/usr/local/redis install

3.ruby及rubygems

3.1安装ruby

先将ruby、rubygems、redis.gem等文件上传到服务器上.
创建ruby及ruby的安装目录,并将安装包解压到安装目录中

1
2
3
4
mkdir /usr/local/ruby
tar -zxvf ruby-2.5.3.tar.gz -C /usr/local/ruby/
mkdir /usr/local/rubygems
tar -zxvf rubygems-2.7.8.tgz -C /usr/local/rubygems/

先make安装ruby

1
2
3
4
cd /usr/local/ruby/ruby-2.5.3
./configure --prefix=/usr/local/ruby
make
make install

安装完后测试ruby是否添加到环境变量中

1
ruby -v

若返回结果如下,说明ruby为注册到环境变量中,需要手动添加
利用vi编辑器打开/etc/profile文件,键盘按i开始编辑,按shift+g调到文件末尾,新起一行,将ruby所在文件夹地址添加到PATH环境变量中

export PATH=$PATH:/usr/local/ruby/bin

键盘按ESC推出编辑模式后输入:wq保存退出。
在shell命令行中,输入

1
source /etc/profile

使环境变量立即生效。
此时输入ruby -v发现ruby已经注册到系统的环境变量中。

3.2安装rubygems及redis.gem

进入到rubygems安装包解压目录,安装rubygems

1
2
cd /usr/local/rubygems/rubygems-2.7.8
ruby setup.rb

安装完成后,在shell命令行中输入

1
gem -v

查看rubygems是否安装成功
若返回结果为

则说明rubygems已经安装成功。
下面安装redis.gem
利用cd命令进入到redis-4.0.3.gem所在文件夹
在shell命令行中输入

1
gem install redis-4.0.3.gem

即可完成redis-4.0.3.gem的安装。

4.创建Redis集群

先在每台服务器上创建Redis的配置文件目录,并将Redis自带的配置文件拷贝到配置文件目录中

1
2
3
cd /usr/local/redis
mkdir conf
cp redis-5.0.0/redis.conf conf/

利用端口号命名Redis的配置文件

1
mv conf/redis.conf conf/redis-6379.conf

修改相应配置以进行集群搭建,我们先对6379端口的配置进行修改。由于6379是Redis的默认端口,因此关于端口方面的配置不需要修改。

1
vi conf/redis.conf

daemonized yes
pidfile /var/run/redis_6379.pid
logfile “node-6379.log”
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes-6379.conf
bind 172.16.100.249 127.0.0.1

更改完后按:wq保存
将6379端口配置文件复制一份,作为6380端口的配置文件,并进行编辑。

1
2
cp conf/redis-6379.conf conf/redis-6380.conf
vi conf/redis-6380.conf

这里我们利用vi编辑器命令:%s/6379/6380/g将文件中所有出现6379的地方替换为6380后,输入:wq保存退出。
配置文件更改好后,启动redis节点

1
2
./bin/redis-server ./conf/redis-6379.conf
./bin/redis-server ./conf/redis-6380.conf

之后我们在shell命令行中查看后台进程是运行

1
ps -aux |grep redis

若返回结果如下,说明redis后台进程已正常运行。
同理,我们对另外两台服务器也进行相应配置,但注意配置文件中bind要替换为对应的服务器IP,配置文件更改好后,同理仿照上步启动节点。
当三台服务器6个节点均启动后,我们开始创建Redis集群。
选择其中一台服务器(以下测试步骤选择任意一台服务器操作即可),执行

1
./bin/redis-cli --cluster create 172.16.100.251:6380 172.16.100.250:6379 172.16.100.250:6380 172.16.100.249:6379 172.16.100.249:6380 172.16.100.251:6379  --cluster-replicas 1

弹出下面对话后输入yes继续

再等一会,发现Redis集群已经创建成功。

利用show_redis_map工具可以查看Redis各节点的情况。将show_redis_map的shell脚本上传到服务器后,运行

1
chmod a+x show_redis_map.sh

给予show_redis_map.sh可执行权限
之后再将redis-cli所在目录注册到环境变量中

1
2
cd ~
vi .bash_profile

在文件结尾处添加

export PATH=$PATH:/usr/local/redis/bin

1
source .bash_profile

使用户的环境变量生效。
最后进入到show_redis_map.sh所在目录执行

1
./show_redis_map.sh 127.0.0.1:6379

即可查看Redis各节点存活情况及Redis集群master和slave的映射关系。

5.为集群创建密码

由于Redis不设置密码十分危险,故在生产环境中一般要求Redis设置连接密码。
由于我们是搭建的Redis集群服务器,需要在每台部署服务器的每个端口均需要设置一次连接密码,这里我们以6379端口设置连接密码为123456为例,命令如下:

1
2
cd /usr/local/redis
./bin/redis-cli -c -p 6379

在Redis命令行中,执行

1
2
3
config set masterauth 123456
config set requirepass 123456
config rewrite

在其它各连接节点都需要重复执行这一操作,注意各个节点的密码都必须一致,否则Redirected就会失败。

最后更新: 2020年02月19日 10:42

原始链接: http://hellozhaoyang.github.io/2019/07/02/T20190702/

× 请我吃糖~
打赏二维码