之前讲到单机redis的为了保证数据安全,必须做好数据备份等基础工作。但是如果流量越来越大,
redis的读写请求压力越来越大,到了一个极限值,性能依旧不够用我们应该如何处理?
这边文章就分为以下几步来一次介绍redis读写分离:
1、两个问题分析redis瓶颈
2、解释什么是读写分离以及读写分离流程与原理
3、读写分离对于数据的安全意义
4、docker搭建一主两从读写分离的实战(附带配置和操作流程)
5、总结
1、两个问题分析redis瓶颈
所以先看看一下两个问题:
1.redis不能支撑高并发的瓶颈在哪里?
第一,一台redis的性能首先和机器性能,业务复杂度,以及redis操作的复杂度这三点是密切相关的。
如果是单纯的String ,key,value操作,性能一般能到1-5w qps。
第二,当一台性能不够用,可以横向扩展机器,就能达到扩容的效果。
单机redis瓶颈.png
2.如何redis要支撑超过10w+的并发,那应该怎么做?
单机redis几乎不可能超过10w+,除非机器性能非常好,物理机,维护好,操作简单
所以必须能横向扩展,采取读写分离主从架构(master - slave)
一个主节点,只写数据
多个从节点,主节点把数据同步给多个从节点
然后读就从从节点读,分摊读压力,从节点还可以横向扩展
redis主从架构示意.png
注意:读写分离是分摊读请求的压力,如果是写请求的操作瓶颈,需要通过cluster让多节点写,
或者通过异步队列,异步完成写操作的方式解决
2、解释什么是读写分离以及读写分离流程与原理
读写分离就是基于redis replication搭建多个redis节点,然后分为master主节点,slave从节点。
maste