Redis读写分离搭建的完整步骤


Posted in Redis onSeptember 14, 2021

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-proxy做请求转发,多分片令使用存在一定的限制,但从主从升级单分片读写分离,或者从集群升级到多分片的读写分离集群可以做到完全兼容。

用户和redis-proxy建立连接,redis-proxy会识别出客户端连接发送过来的请求是读还是写,然后按照权重作负载均衡,将请求转发到后端不同的DB节点中,写请求转发给master,读操作转发给read-only replica(master默认也提供读,可以通过权重控制)。

用户只需要购买读写分离规格的实例,直接使用任何客户端即可直接使用,业务不用做任何修改就可以开始享受读写分离服务带来的巨大性能提升,接入成本几乎为0。

高可用

高可用模块(HA)监控所有DB节点的健康状态,为整个实例的可用性保驾护航。master宕机时自动切换到新主。如果某个read-only replica宕机,HA也能及时感知,然后重搭一个新的read-only replica,下线宕机节点。

除HA之外,redis-proxy也能实时感知每个read-only replica的状态。在某个read-only replica异常期间,redis-proxy会自动降低这个节点的权重,如果发现某个read-only replica连续失败超过一定次数以后,会暂时屏蔽异常节点,直到异常消失以后才会恢复其正常权重。

redis-proxy和HA一起做到尽量减少业务对后端异常的感知,提高服务可用性。

高性能

对于读多写少的业务场景,直接使用集群版本往往不是最合适的方案,现在读写分离提供了更多的选择,业务可以根据场景选择最适合的规格,充分利用每一个read-only replica的资源。

目前单shard对外售卖1 master + 1/3/5 read-only replica多种规格(如果有更大的需求可以提工单反馈),提供60万QPS和192 MB/s的服务能力,在完全兼容所有命令的情况下突破单机的资源限制。后续将去掉规格限制,让用户根据业务流量随时自由的增加或减少read-only replica数量。

4、综述

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

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

到此这篇关于Redis读写分离搭建的文章就介绍到这了,更多相关Redis读写分离搭建内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
解决redis sentinel 频繁主备切换的问题
Apr 12 Redis
Redis安装启动及常见数据类型
Apr 14 Redis
Redis基于Bitmap实现用户签到功能
Jun 20 Redis
浅析Redis Sentinel 与 Redis Cluster
Jun 24 Redis
浅谈Redis中的RDB快照
Jun 29 Redis
Redis Stream类型的使用详解
Nov 11 Redis
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
Feb 12 Redis
分布式Redis Cluster集群搭建与Redis基本用法
Feb 24 Redis
Redis调用Lua脚本及使用场景快速掌握
Mar 16 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
redis复制有可能碰到的问题汇总
Apr 03 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
在项目中使用redis做缓存的一些思路
Redis RDB技术底层原理详解
Sep 04 #Redis
使用redis实现延迟通知功能(Redis过期键通知)
Redis集群新增、删除节点以及动态增加内存的方法
Sep 04 #Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
Sep 04 #Redis
基于Redis的List实现特价商品列表功能
Aug 30 #Redis
Redis 常见使用场景
Aug 30 #Redis
You might like
如何删除多级目录
2006/10/09 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
php生成验证码函数
2015/10/20 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
JS常见算法详解
2017/02/28 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
Python字符遍历的艺术
2008/09/06 Python
Python类的多重继承问题深入分析
2014/11/09 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
军训教官感言
2014/03/02 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
公司行政管理制度范本
2015/08/05 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server