Redis 主从复制集群部署记录

本文档详细介绍了在中标麒麟CentOS7环境下,如何部署Redis的主从复制集群。首先,关闭防火墙,然后安装Redis并修改配置文件,包括解除bind限制,开启守护进程,设置密码。接着,配置从节点,设置replicaof参数以跟随主节点,并调整相关配置。最后,通过主从节点的数据同步验证配置成功。测试显示,主节点写入的数据能实时同步到从节点。
摘要由CSDN通过智能技术生成

Redis 主从复制集群部署记录

本文档依赖于 中标麒麟 centos 7 操作系统部署

redis-5.0.7.tar.gz

predixy-1.0.5-bin-amd64-linux.tar.gz

关闭防火墙

因为是多个服务器做主从复制,服务器之间必须可以链通,需要关闭所有服务器的防火墙,如果现场不允许关闭,请酌情配置端口

[root@localhost ~]# systemctl stop  firewalld
[root@localhost ~]# systemctl disable   firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Redis实例的安装

  • 升级yum 源 (内网环境无法升级可以先略过)yum update

  • 安装 gccyum install gcc

  • 获取安装包自己带了安装包直接上传即可,没有安装包可以下载

    • Redis安装包下载地址: http://download.redis.io/releases/redis-5.0.7.tar.gz
mkdir /home/archser/soft 
cd /home/archser/soft 
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
  • 解压软件tar -xzvf redis-5.0.7.tar.gz

  • 安装 Redis

cd ./redis-5.0.7
make  ## 编译
make install  ## 迁出工具文件
mkdir /home/archser/redis_6379 ## 创建Redis专用文件夹
./utils/install_server.sh ## 将Redis作为服务安装,安装过程如下
[root@localhost utils]# ./install_server.sh 
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]  ## 设置端口号,默认即可,直接回车
Selecting default: 6379
## 设置 conf文件位置,直接复制创建的文件夹 + /6379.conf 
## 注意:这里删除输入错误需要使用 ctrl + 删除键
Please select the redis config file name [/etc/redis/6379.conf] /home/archser/redis_6379/6379.conf 
## 设置日志文件位置
Please select the redis log file name [/var/log/redis_6379.log] /home/archser/redis_6379/6379.log
## 设置 Redis 数据文件位置
Please select the data directory for this instance [/var/lib/redis/6379] /home/archser/redis_6379/data
## 服务文件位置,默认即可,直接回车
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /home/archser/redis_6379/6379.conf
Log file       : /home/archser/redis_6379/6379.log
Data dir       : /home/archser/redis_6379/data
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
## 这里是让我们确认配置,配置无误直接回车即可
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

## 这时系统中就应该有一个 Redis 进程,且此进程默认 *** 开机自启 ***
[root@localhost utils]# ps -ef|grep redis 
root      17591      1  0 10:30 ?        00:00:00 /usr/local/bin/redis-server 127.0.0.1:6379
root      17656  12909  0 10:36 pts/1    00:00:00 grep --color=auto redis
  • 修改Redis配置文件
cd /home/archser/redis_6379
vi 6379.conf
## 注释  bind 127.0.0.1,不指定允许链接的IP地址
# bind 127.0.0.1
## protected-mode 改为 no ,允许其他服务器链接
protected-mode no
## daemonize 改为 yes ,在后台运行
daemonize yes
## 解开 requirepass 注释,添加 Redis 密码
requirepass archser_redis
  • 重启Redis
[root@localhost redis_6379]# redis-cli  -p 6379
127.0.0.1:6379> SHUTDOWN ## 关闭服务
not connected> 
## 重启服务
[root@localhost redis_6379]# service redis_6379 start 
Starting Redis server...
[root@localhost redis_6379]# ps -ef|grep redis 
root      17991      1  0 10:53 ?        00:00:00 /usr/local/bin/redis-server *:6379
root      17996  12909  0 10:53 pts/1    00:00:00 grep --color=auto redis
[root@localhost redis_6379]# redis-cli -p 6379 
## 重新链接需要密码
127.0.0.1:6379> AUTH archser_redis 
OK
127.0.0.1:6379> keys * 
(empty list or set)
127.0.0.1:6379> 

从节点的配置

  • 主从复制集群是由一个主节点,多个从节点组成,我们按照这个架构配置主从复制集群

  • 我这里有三台服务器,分别为151、153、154 ,我们选择 151 为主节点,153、154 为从节点,并共同追随 151

修改从节点的配置

注意:这里说的是从节点是为了更好的理解配置的含义,如果主节点宕机,Redis哨兵则会选举新的主节点,当宕机的主节点重启后则会变成从节点,所以无论主从节点都需要配置

  • 进入 153 服务器

  • 修改Redis 配置文件(这里是针对从节点功能的修改)

vi /home/archser/redis_6379/6379.conf
## 主节点信息
replicaof 192.168.31.151 6379
## 主节点密码
masterauth archser_redis
## 可以规定最少在几个节点存活的状态下主节点可以继续写入,保证有足够多的健康的节点提供服务 

修改主节点的配置

注意:这里说的是主节点是为了更好的理解配置的含义,但是如果主节点宕机,则哨兵会选举出新的主节点,也就是之前的从节点,那么新的从节点也应该有以下的配置,所以无论主从节点都需要配置

# min-replicas-to-write 3
min-replicas-to-write 2
# min-replicas-max-lag 10
## 延迟小于这里配置的秒数的节点才被认为是健康的节点
min-replicas-max-lag 3
  • 重启 Redis
[root@localhost redis_6379]# redis-cli -p 6379
127.0.0.1:6379> SHUTDOWN  ## 关闭redis
(error) NOAUTH Authentication required.
127.0.0.1:6379> 
[root@localhost redis_6379]# ll
总用量 176
-rwxr-xr-x 1 root root  62000 222 11:15 6379.conf
-rwxr-xr-x 1 root root 113968 222 11:29 6379.log
drwxr-xr-x 2 root root     22 222 11:29 data
## 启动Redis
[root@localhost redis_6379]# service redis_6379 start   
## 如果提示 pid 文件存在,删除即可,没有提示可以忽略
/var/run/redis_6379.pid exists, process is already running or crashed
## 删除 pid文件 ,没有提示可以忽略
[root@localhost redis_6379]# rm -f /var/run/redis_6379.pid
[root@localhost redis_6379]# service redis_6379 start   
Starting Redis server...
[root@localhost redis_6379]# ps -ef|grep redis 
root      18203      1  0 11:19 ?        00:00:00 /usr/local/bin/redis-server *:6379
root      18528  13457  0 11:32 pts/0    00:00:00 grep --color=auto redis
[root@localhost redis_6379]# redis-cli -p 6379
127.0.0.1:6379> AUTH archser_redis
OK

  • 成功日志参考可以查看对应日志文件

/home/archser/redis_6379/6379.log

[root@localhost redis_6379]#  tail -f 6379.log 
27223:S 22 Feb 2021 11:40:57.134 * Connecting to MASTER 192.168.31.151:6379
27223:S 22 Feb 2021 11:40:57.134 * MASTER <-> REPLICA sync started
27223:S 22 Feb 2021 11:40:57.134 * Non blocking connect for SYNC fired the event.
27223:S 22 Feb 2021 11:40:57.134 * Master replied to PING, replication can continue...
27223:S 22 Feb 2021 11:40:57.135 * Partial resynchronization not possible (no cached master)
27223:S 22 Feb 2021 11:40:57.135 * Full resync from master: 38e55326217099121a346935616b52972e155074:1331
27223:S 22 Feb 2021 11:40:57.172 * MASTER <-> REPLICA sync: receiving 186 bytes from master
27223:S 22 Feb 2021 11:40:57.173 * MASTER <-> REPLICA sync: Flushing old data
27223:S 22 Feb 2021 11:40:57.173 * MASTER <-> REPLICA sync: Loading DB in memory
27223:S 22 Feb 2021 11:40:57.173 * MASTER <-> REPLICA sync: Finished with success

测试主从复制

测试思路是在主节点添加数据,看从节点中是否有相同的数据

## 主节点 “151”
[root@localhost ~]# redis-cli -p 6379 
127.0.0.1:6379> AUTH archser_redis 
OK
127.0.0.1:6379> keys * 
(empty list or set)
127.0.0.1:6379> set a a 
OK
## 从节点 “153”
[root@localhost redis_6379]# redis-cli -p 6379
127.0.0.1:6379> AUTH archser_redis 
OK
127.0.0.1:6379> keys * 
1) "a" 
  • 测试没有问题则将其他从节点按照上面的步骤修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值