NoSQL 数据库案例实战 -- Redis 高可用解决方案 主从同步

Redis 高可用解决方案 主从同步

前言

本环境是基于 Centos 7.8 系统构建Redis学习环境
具体构建,请参考 Redis-5.0.9环境部署

Redis自带了主从同步的功能解决数据库冗余的问题,配置较为简单。接下来我将详细介绍


主从复制的作用

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  • 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
  • 读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量;
  • 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

主从复制过程

Redis 主从复制过程:

  • Slave 与 master 建立连接,发送 sync 同步命令
  • Master 会启动一个后台进程,将数据库快照保存到文件中,同时 master 主进程会开始收集新的写命令并缓存。
  • 后台完成保存后,就将此文件发送给 slave
  • Slave 将此文件保存到硬盘上

主从全量数据同步流程

在这里插入图片描述

一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构

环境准备

role node ip Redis-Version
主服务器 reids-yum 192.168.5.11 Redis-5.0.9
从服务器 reids_source_code 192.168.5.12 Redis-5.0.9

主服务器配置

[root@reids-yum ~]# vim /etc/redis.conf
bind 192.168.5.11
[root@reids-yum ~]# systemctl restart redis

从服务器配置

[root@reids_source_code ~]# vim /etc/redis/redis.conf
bind 192.168.5.12
replicaof 192.168.5.11 6379
[root@reids_source_code ~]# systemctl restart redis

查看主从同步状态

在这里插入图片描述

在这里插入图片描述
测试主从同步效果

# 主写入数据
192.168.5.11:6379> set name wan
OK
192.168.5.11:6379> set age 20
OK
192.168.5.11:6379> get gender
"man"
# 从查看写入
192.168.5.12:6379> keys *
1) "gender"
2) "age"
3) "name"
192.168.5.12:6379> mget name age gender
1) "wan"
2) "20"
3) "man"

# 主删除数据
192.168.5.11:6379> del age
(integer) 1
# 从查看数据
192.168.5.12:6379> keys *
1) "gender"
2) "name"

主从同步配置成功!!!

猜你喜欢

转载自blog.csdn.net/XY0918ZWQ/article/details/113803598