突破Java面试(23)-如何保证redis高并发及高可用

2019-06-15 00:00:00 java 面试 突破

1 面试题

如何保证Redis的高并发和高可用?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?

2 考点分析

其实问这个问题,主要是考考你,redis单机能承载多高并发?
如果单机扛不住如何扩容抗更多的并发?
redis会不会挂?
既然redis会挂那怎么保证redis是高可用的?

其实针对的都是项目中你肯定要考虑的一些问题,如果你没考虑过,那确实你对生产系统中的问题思考太少。

3 详解

就是如果你用Redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了

3.1 redis高并发

主从架构,一主多从,一般来说,很多项目其实就足够了,单主用来写入数据,单机几万QPS,多从用来查询数据,多个从实例可以提供每秒10万的QPS。

redis高并发的同时,还需要

3.2 容纳大量的数据

一主多从,每个实例都容纳了完整的数据,比如redis主就10G的内存量,其实你就最对只能容纳10g的数据量。
如果你的缓存要容纳的数据量很大,达到了几十g,甚至几百g,或者是几t,那你就需要Redis集群,而且用redis集群之后,可以提供可能每秒几十万的读写并发。

3.3 redis高可用

如果你做主从架构部署,其实就是加上哨兵就可以了,就可以实现,任何一个实例宕机,自动会进行主备切换。

相关文章