随着企业业务的不断扩大,请求的并发量不断增长,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主服务的密码
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
主服务器状态:
从服务器A状态:
从服务器B状态:
2.6 测试主从复制
此时,在主服务器,写入Redis值,在从服务器就可以读取。
3、综述
今天介绍了Redis读写分离的搭建,相对来说是比较容易的,但读写分离有个缺点,当主服务宕机后,从服务是不能升级成主服务的。
为了解决这个单点问题,后面我们会介绍Redis的哨兵模式和集群模式。
希望大家多多评论交流,共同成长。
关注追风人聊Java,每天更新Java干货。