遇见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

追风赶月莫停留,平芜尽处是春山!