Redis集群搭建

目录

一、 环境准备

二、 安装gcc

四、 搭建主从集群

4.1 解压安装包并编译

4.2 编写配置文件

4.3 启动服务

五、 搭建哨兵节点

5.1 编写配置文件

5.1 启动服务

六、 搭建cluster集群模式

6.1  cluster节点配置

6.2  节点启动

6.3 集群初始化

6.4 集群验证


一、 环境准备

    部署模式:1主2从3哨兵

    Redis版本:redis7.2.3 。

    gcc版本:gcc9.3.1

IP地址

操作系统

节点名称

角色

192.168.122.120Centos7.6node2.vteamcloud.com哨兵节点
192.168.122.98Centos7.6node3.vteamcloud.com哨兵节点
192.168.122.226Centos7.6node4.vteamcloud.com哨兵节点
192.168.122.227Centos7.6node5.vteamcloud.com工作节点
192.168.122.237Centos7.6node6.vteamcloud.com工作节点
192.168.122.238Centos7.6node7.vteamcloud.com工作节

二、 安装gcc

 centos默认的gcc最高版本是4.8.5,而redis7需要更高版本的gcc来支持。

#安装centos-release-scl
yum -y install centos-release-scl 

#安装最新版本的GCC
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils 

scl enable devtoolset-9 bash

echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile #修改环境变量

source /etc/profile

gcc -v

三、 关闭防火墙

service iptables stop

service firewalld stop

 如果不想关闭防火墙,则开放6379、16379、26379三个端口。

vim /etc/sysconfig/iptables

# 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 16379 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 26379 -j ACCEPT

重启iptables服务

service iptables restart

四、 搭建主从集群

       redis哨兵是基于主从模式搭建的,因此先要搭建一个主从集群。

4.1 解压安装包并编译

# 进入安装目录
cd /usr/local

# 解压
tar -zxvf redis-7.2.3.tar.gz

# 进入redis目录
cd redis-7.2.3/

# 编译
make && make install

# 创建bin目录
mkdir bin

# 创建配置文件目录
mkdir config

# 创建数据存放目录
mkdir data

# 进入src目录
cd src

# 将常用命令复制到bin目录
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis-7.2.3/bin

# 将配置文件复制到config目录
cp redis.config sentinel.conf /usr/local/redis-7.2.3/config

4.2 编写配置文件

     主从节点的配置基本差不多,只是从节点要配置数据从哪个节点同步。

vim redis.conf
# 修改以下内容

# 端口
port 6379

# 指定redis进程的PID文件存放位置
pidfile /var/run/redis_6379.pid  # 把pid进程号写入pidfile配置的文件

# log文件输出位置
logfile "/usr/local/redis-7.2.3/logs/redis.log"

# 工作目录,注意,目录不存在则创建
dir /usr/local/redis-7.2.3/data

# 需要注释掉bind,127.0.0.1 是指只能本地访问
bind 0.0.0.0

# 是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启;否则最好关闭设置为no。
protected-mode yes

# redis进程是否以守护进程的方式运行,yes为是(后台运行),no为否(不以守护进程的方式运行会占用一个终端)。
daemonize yes

# 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
requirepass Redis@123456

# 当master设置了密码保护时,slave服务连接master的密码
masterauth Redis@123456

# 指定本地数据库文件名
dbfilename dump.rdb

# 设置数据库的数量,默认为0可以使用select <dbid>命令在连接上指定数据库id
databases 16

# 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save 900 1
save 300 10
save 60 10000

#(分别表示 900 秒(15 分钟)内有 1 个更改,300 秒(5 分钟)内有 10 个更改以及 60 秒内有10000 个更改。)

# 开启AOF持久化
appendonly no

# aof持久化文件名
appendfilename "appendonly.aof"

# aof持久化频率  每秒同步
appendfsync everysec

# 从哪个节点同步数据,只有从节点要这个配置,Redis 5.0之前使用slaveof
replicaof 192.168.0.60 6379 

# 是否只读,这个配置只对从节点有效,所有节点配置为yes。
replica-read-only yes

4.3 启动服务

# 启动服务
./redis-server /usr/local/redis-7.2.3/config/redis.conf

# 连接服务
./redis-cli -h 192.168.122.227 -p 6379

# 输入密码:
auth Redis@123456

# 查看节点信息:
info replication

# 查看日志
tail -1000f redis.log

五、 搭建哨兵节点

   搭建哨兵节点的步骤到解压、编译这一步与主从节点都是一致的。只是使用的配置文件不同。

5.1 编写配置文件

vim sentinel.conf
#端口默认为26379。
port:26379
 
#关闭保护模式,可以外部访问
protected-mode:no
 
#设置为后台启动
daemonize:yes
 
#日志文件
logfile:./sentinel-26379.log
 
#指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换
sentinel monitor mymaster 192.168.122.227 6379 2
 
#当在Redis实例中开启了requirepass,这里就需要提供密码
sentinel auth-pass mymaster Redis@123456
 
#这里设置了主机多少秒无响应,则认为挂了
sentinel down-after-milliseconds mymaster 3000
 
#主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1
sentinel parallel-syncs mymaster 1
 
#故障转移的超时时间,这里设置为三分钟
sentinel failover-timeout mymaster 180000
 
#sentinel工作目录(默认/tmp)
dir  ./sentinel-work-26379
 
#守护进程pid存储文件(默认位置 /var/run/redis-sentinel.pid)
pidfile /var/run/redis-sentinel_26379.pid

注意:如果要重新搭建集群,最好把data、logs和进程文件pidfile /var/run/redis_6379.pid都删掉。同时删除配置文件生成的进程id和底部的集群选举信息。

5.1 启动服务

./redis-sentinel /usr/local/redis-7.2.3/config/sentinel.conf

六、 搭建cluster集群模式

  cluster模式的搭建与主从模式类似,只是要多一步集群初始化操作。

6.1  cluster节点配置

  cluster的配置仍然使用redis.conf,它不需要配置从节点从哪个节点读取数据。但是配置允许cluster部署。

vim redis.conf
 
# 修改以下内容
 
# 端口
port 6379
 
# 指定redis进程的PID文件存放位置
pidfile /var/run/redis_6379.pid  # 把pid进程号写入pidfile配置的文件
 
# log文件输出位置
logfile "/usr/local/redis-7.2.3/logs/redis.log"
 
# 工作目录,注意,目录不存在则创建
dir /usr/local/redis-7.2.3/data
 
# 需要注释掉bind,127.0.0.1 是指只能本地访问
bind 0.0.0.0
 
# 是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启;否则最好关闭设置为no。
protected-mode yes
 
# redis进程是否以守护进程的方式运行,yes为是(后台运行),no为否(不以守护进程的方式运行会占用一个终端)。
daemonize yes
 
# 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
requirepass Redis@123456
 
# 当master设置了密码保护时,slave服务连接master的密码
masterauth Redis@123456
 
# 指定本地数据库文件名
dbfilename dump.rdb
 
# 设置数据库的数量,默认为0可以使用select <dbid>命令在连接上指定数据库id
databases 16
 
# 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save 900 1
save 300 10
save 60 10000
(分别表示 900 秒(15 分钟)内有 1 个更改,300 秒(5 分钟)内有 10 个更改以及 60 秒内有 10000 个更改。)
 
# 开启AOF持久化
appendonly no
# aof持久化文件名
appendfilename "appendonly.aof"
# aof持久化频率  每秒同步
appendfsync everysec
 
# 启动集群模式
cluster-enabled yes
# 集群节点信息文件,这里6379最好和port对应上
cluster-config-file nodes-6379.conf
cluster-node-timeout 10000
 
# 是否只读,这个配置只对从节点有效,所有节点配置为yes。
replica-read-only yes

6.2  节点启动

# 启动服务
./redis-server /usr/local/redis-7.2.3/config/redis.conf
 
# 连接服务
./redis-cli -h 192.168.122.227 -p 6379
 
# 输入密码:
auth Redis@123456
 
# 查看节点信息:
info replication
 
# 查看日志
tail -1000f redis.log

6.3 集群初始化

# 此命令只要在一台机器上执行即可。6个节点,前面3个是主,后3个是从。一一对应的关系。
./redis-cli -a Redis@123456 --cluster create --cluster -replicas 1   192.168.122.227:6379 192.168.122.237:6379 192.168.122.238:6379 192.168.122.120:6379 192.168.122.98:6379 192.168.122.226:6379

6.4 集群验证

# 进入节点后输入下面命令查看集群节点状态
cluster info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

季风泯灭的季节

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值