Centos7-redis集群搭建主从复制
一、概念
1.主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。
2.一般来说80%的情况下都是在进行读操作,所以为了减轻服务器的压力,一般Master以写为主,Slave以读为主。
3.默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
4.Redis的主从复制功能分为两种数据同步模式进行:全量数据同步和增量数据同步。
二、主从复制的作用
1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
2.故障恢复﹔当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
3.负载均衡∶在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
4.高可用(集群)基石∶除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
三、搭建redis集群
1.准备三台虚拟服务器
节点 | IP | 端口 |
---|---|---|
master | 192.168.2.61 | 6379 |
slave1 | 192.168.2.62 | 6379 |
slave2 | 192.168.2.63 | 6379 |
2.三台服务器都安装好redis可以查看教程:https://itcdz.cn/archives/centos7--an-zhuang-redis6
3.修改三台服务器的redis配置文件
master节点(主节点):
vim /opt/redis/conf/redis.conf
#监听服务器的IP
bind 192.168.2.61
#开启redis守护进程
daemonize yes
#配置日志
logfile "/opt/redis/log/redis_192.168.2.61.log"
#配置工作目录
dir "/opt/redis/data"
#关闭保护模式
protected-mode no
#配置redis访问密码
requirepass "password"
#配置主节点访问密码(此项三台服务器都要加不然主从切换后从节点将无法访问新的主节点)
masterauth "password"
slave1节点(从节点):
vim /opt/redis/conf/redis.conf
#监听服务器的IP
bind 192.168.2.62
#开启redis守护进程
daemonize yes
#配置日志
logfile "/opt/redis/log/redis_192.168.2.62.log"
#配置工作目录
dir "/opt/redis/data"
#关闭保护模式
protected-mode no
#配置redis访问密码
requirepass "password"
#配置主从复制(主节点IP 端口)
replicaof 192.168.2.62 6379
#配置主节点访问密码
masterauth "password"
slave2节点(从节点):
vim /opt/redis/conf/redis.conf
#监听服务器的IP
bind 192.168.2.63
#开启redis守护进程
daemonize yes
#配置日志
logfile "/opt/redis/log/redis_192.168.2.63.log"
#配置工作目录
dir "/opt/redis/data"
#关闭保护模式
protected-mode no
#配置redis访问密码
requirepass "password"
#配置主从复制(主节点IP 端口)
replicaof 192.168.2.62 6379
#配置主节点访问密码
masterauth "password"
4.分别启动三台服务器上的redis程序
cd /opt/redis/bin/
./redis-server ../conf/redis.conf
5.查看三台服务器上的redis进程
ps -ef|grep redis
四、验证
1.使用redis客户端程序连接
cd /opt/redis/bin/
./redis-cli -h 192.168.2.61 -p 6379
#密码要在连接后执行命令数据
auth password
2.登录后输入命令查看redis主从复制的信息
info replication
参数解释:
# Replication
role:master #显示该redis服务的角色为master
connected_slaves:2 #显示该redis服务的从机数量
slave0:ip=192.168.2.63,port=6379,state=online,offset=3117404,lag=0
slave1:ip=192.168.2.62,port=6379,state=online,offset=3117404,lag=0
master_failover_state:no-failover
master_replid:88f8c38048881b460228bc9b00d80386d1ec3701
master_replid2:ab4a7dbb6b1bd7394cd9d5d4a48ebdf99e7df853
master_repl_offset:3117404
second_repl_offset:3077445
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2068829
repl_backlog_histlen:1048576
3.执行命令查看三台redis的数据信息
keys *
4.往master节点键值,在其他两个slave上查看是否复制成功
set name zxx
get name
五、主从节点切换
除了配置redis.conf文件来配置主从关系外,还可以通过命令来手动配置主从关系
#设置192.168.2.62为master
slaveof 192.168.2.62 6379
#用slaveof no one命令来把当前redis的角色变成master
slaveof no one
参考:https://blog.csdn.net/m0_64284147/article/details/125630046