Redis的读写分离

时间:2020-12-18 08:07:31

1、概述

随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力。

读写分离(主从复制)是一个比较简单的扩展方案,使用多台机器同时运行Redis服务,一台负责写服务,多台负责读服务,通过多台服务器对请求进行负载,大大提高了Redis服务的负载压力。

最常见的读写分离是一主二从的模式,一台主服务器负责Redis写入服务,两台从服务器负责Redis的读取服务,从服务器定时从主服务器复制Redis数据。

今天我们就来聊聊Redis的读写分离如何搭建的。

2、读写分离的搭建

2.1 场景说明

主服务器IP:192.168.1.144

从服务器A IP:192.168.1.22

从服务器B IP:192.168.1.8

这三台服务器上都已经安装好了Redis环境,安装方法参见我的另一篇文章《Redis的安装、基本使用以及与SpringBoot的整合》。

2.2 修改从服务器A和从服务B的Redis配置

replicaof   设置Redis主服务的IP和端口

masterauth    设置Redis主服务的密码

Redis的读写分离

2.3 删除从服务器A和从服务器B的数据文件

# cd /usr/local/redis/db

# rm -rf *.rdb *.aof

2.4 重启从服务器A和从服务器B

# cd /etc/init.d/

# ./redis_init_script stop

# ./redis_init_script start

2.5 查看主从状态

# redis-cli

> AUTH zhuifengren

> info replication

主服务器状态:

Redis的读写分离

 从服务器A状态:

Redis的读写分离

从服务器B状态:

Redis的读写分离

 2.6 测试主从复制

此时,在主服务器,写入Redis值,在从服务器就可以读取。

3、综述

今天介绍了Redis读写分离的搭建,相对来说是比较容易的,但读写分离有个缺点,当主服务宕机后,从服务是不能升级成主服务的。

为了解决这个单点问题,后面我们会介绍Redis的哨兵模式和集群模式。

希望大家多多评论交流,共同成长。

关注追风人聊Java,每天更新Java干货。