
遇见0和1
V1
2023/03/05阅读:9主题:全栈蓝
Redis主从复制
前言
Redis
虽提供了 快照(AOF) 和 RDB 两个持久化技术保障即使在服务器重启的情况下也不会丢失数据(或少量丢失)
但数据始终都是保存在一台服务器上,若服务器发生宕机或硬盘出现故障,都可能导致数据丢失
Redis主从复制架构

Redis 提供了主从复制模式来避免这种单点故障引起的数据丢失
「主从服务器之间采用的是「读写分离」的方式,可以保证多台服务器数据的一致性」
主服务器可以进行读写操作,当发生写操作时自动将写操作同步给从服务器,而从服务器一般是只读,并接受主服务器同步过来的写操作命令,然后执行这条命令。
搭建Redis主从复制
1、准备3台主机并修改Redis的配置文件redis.conf(「主节点修改五个信息,从节点还要配置主节点的IP,端口和访问密码」)
- master
port 8001 # 设置redis服务端口(默认是6379)
bind 0.0.0.0 # 开启远程连接
daemonize yes # 开启守护线程的方式启动
protected-mode no # 关闭保护模式
requirepass 123456 # 设置Redis服务访问密码
- slave1
port 8002
bind 0.0.0.0
daemonize yes
protected-mode no
requirepass 123456
# 要同步备份的主节点,replicaof masterip(主节点IP) masterport(主节点服务的端口)
replicaof 192.168.31.161 8001
# 主节点服务访问密码
masterauth 123456
- slave2
port 8003
bind 0.0.0.0
daemonize yes
protected-mode no
requirepass 123456
replicaof 192.168.31.161 8001
masterauth 123456
2、分别启动3台主机上的Redis服务进行测试
cd /home/ling/software/redis/bin
./redis-server ../redis.conf
查看Redis进程
# 查看redis进程
ps -ef | grep redis
3、测试Redis主从复制
(1)「在主节点写入一个缓存,查看两个从节点是否自动同步数据」
(2)「在两个从节点尝试是否能执行写操作」
由以上测试结果可看到Redis主从复制已运行正常!
后记
在实际开发中Redis主从复制并不常用,因为「Redis主从复制架构只能实现数据冗余备份和减轻主节点压力」,若主节点出现宕机则整个Redis都不能再执行写操作
Redis通过「Sentinel哨兵机制」来解决以上问题,实现Redis在整个系统中的高可用
当哨兵服务监测到master宕机,会自动「选举」一个slave作为新的master,然后通过「发布订阅模式」通知其他的从节点
下期带来Redis中的哨兵机制!
作者介绍

遇见0和1
V1
追风赶月莫停留,平芜尽处是春山!