(九)高并发redis学习笔记:redis主从架构以及读写分离如何承载读高并发
2021-04-24 23:33
791 查看
文章目录
1、redis如何承载高并发
需要明确的一点:redis只是解决高并发架构里面的一个环节,而且是读高并发,如果是写高并发的话,可能需要考虑其他的异步,或者消息队列方式。
redis的瓶颈在哪里?
单机模式,一般来说QPS从一万到几万不等,当然机器性能好,配置牛,那可能会更高。一般来说读写分离适合写请求比较少,大概一秒几千,大量的请求都是读请求。读请求大概一秒钟十几万,几十万。
一直在说读写分离,但是读写分离是怎么做的呢?
一般是一主多从的架构,主redis负责写,并且敬数据复制同步到其他的slave节点上,读操作则从slave节点读,这样做的好处是可以水平扩容,如果每一个slave可以承载5w的QPS,那么三台slave则可以承受15w的QPS(理论上)。
2、redis replication基本原理
Redis replication是一种
master-slave模式的复制机制,使得 slave 节点可以成为与 master 节点完全相同的副本。一个master可以有多个slave,但是slave只能有一个master,而且数据只能从master流向slave,不可以从slave流到master,这是单向过程。
redis replication的核心机制,
- (1)当master接收到写请求的时候,写完成之后会立马返回客户端,表示写已经完成了,同时redis采用
异步方式
复制数据到slave节点。不会阻塞写写请求。不过redis 2.8开始,slave node会周期性地确认自己每次复制的数据量. - (2)slave node也可以连接其他的slave node
- (3)slave node做复制的时候,是不会block master node的正常工作的
- (4)slave node在做复制的时候,也不会block对自己的查询操作,它会用旧的数据集来提供服务; 但是复制完成的时候,需要删除旧数据集,加载新数据集,这个时候就会暂停对外服务了,但是这个时间极短。
- (5)slave node主要用来进行横向扩容,做读写分离,扩容的slave node可以提高读的吞吐量。
3、有了主从架构就不用做持久化或者备份了么?
一般不是的。
如果采用了主从架构的话,一般是必须开启master的持久化的,不建议用slave node作为master node的数据热备,因为那样的话,如果你关掉master的持久化,可能在master宕机重启的时候数据是空的,然后可能一经过复制,空数据被复制到slave中,salve node数据也丢了。
虽然slave node可以自动接管master node,但是也可能
sentinal还没有检测到master failure,master node就自动重启了,还是可能导致上面的所有slave node数据清空故障,所以不要冒险。当然硬要关闭master的持久化的话,应禁用实例的自动重启。
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~
技术之路不在一时,山高水长,纵使缓慢,驰而不息。
公众号:秦怀杂货店
相关文章推荐
- (七)高并发redis学习笔记:redis的AOF持久化机制深入理解以及数据恢复实验
- (六)高并发redis学习笔记:redis的RDB持久化机制配置以及数据恢复的实验
- Redis学习笔记10--Redis主从复制
- (转)iOS并发编程笔记,包含GCD,Operation Queues,Run Loops,如何在后台绘制UI,后台I/O处理,最佳安全实践避免互斥锁死锁优先级反转等,以及如何使用GCD监视进程文件文件夹,并发测试的方案等
- JAVA学习笔记20:包的概念以及如何导入包
- nodejs学习笔记_nodejs和PHP在基础架构上的区别--共享状态的并发
- 安卓学习笔记---如何保存数据到SharePreference里面,获取所有sp文件以及删除文件
- 总结最近学习的Jenkins Master/Slave架构以及如何用linux做master添加一个Windows slave
- 学习笔记(01):k8s与SpringCloud分布式服务架构-3.1如何配置镜像的加速器?
- iOS并发编程笔记,包含GCD,Operation Queues,Run Loops,如何在后台绘制UI,后台I/O处理,最佳安全实践避免互斥锁死锁优先级反转等,以及如何使用GCD监视进程文件文件夹,并发测试的方案等
- Redis学习笔记五:redis主从复制
- JAVAWEB开发之redis学习(十一)——redis运维相关(主从复制以及AOF、RDB的配置、后台运维命令)
- Redis学习笔记(4)-持久化、主从配置、哨兵、集群配置
- Sprig MVC 学习笔记 (2)—— 网站架构的演变及海量数据、高并发解决方案
- Redis学习笔记(六)主从复制
- (八)高并发redis学习笔记:redis企业级数据备份方案是怎么样的?
- NET 应用架构指导 V2 学习笔记(十五) 数据访问层指导 技术、性能、安全、部署、以及设计步骤考虑
- Spring学习笔记——Spring如何装配各种类型的属性以及实际应用
- 基于Redis主从复制读写分离架构的Session共享
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存