如果Redis的读写请求量很大,那么单个实例很有可能承担不了这么大的请求量,如何提高Redis的性能呢?你也许已经想到了,可以部署多个副本节点,业务采用读写分离的方式,把读请求分担到多个副本节点上,提高访问性能。要实现读写分离,就必须部署多个副本,每个副本需要实时同步主节点的数据。
Redis也提供了完善的主从复制机制,使用非常简单的命令,就可以构建一个多副本节点的集群。
同时,当主节点故障宕机时,我们可以把一个副本节点提升为主节点,提高Redis的可用性。可见,对于故障恢复,也依赖Redis的主从复制,它们都是Redis高可用的一部分。
这篇文章我们就来介绍一下Redis主从复制流程和原理,以及在复制过程中有可能产生的各种问题。
一面:70分钟突击电话面试
正思考着项目功能模块,阿里面试官打来了电话,开始了阿里一面。
阿里面试官自我介绍,介绍了5分钟左右,部门的情况,主要的业务
提问开始
- 会哪些操作系统
Linux会一点 - 说一下操作指令,怎么看cpu,看进程,看端口
- 操作系统进程间通信
- 追问了一个信号相关的问题,我不知道了。
- io多路复用,说一说
- 面向切面编程,说一说那些场景
- 说说面向切面编程
- 给一个场景,有很多方法,找出耗时长的方法
- spring的@autowired的作用
- mybatis和hibernate的区别
- C,C++了解吗
(不了解) - python用过吗
(没有,我用过matlab(笑)) - Java类加载器哪几种
- Java垃圾回收器
我先说了垃圾回收算法–垃圾收集器–比较CMS和G1。 - 配置过java启动设置吗
没有,我只用过-xms等指令改过JVM参数,和jinfo看参数 - 说说-XMS,除了-XMS,你还用过哪些指令
-XMX -XSS -XMN - 说说java保证线程间同步的方法
Synchronize,reentrantlock,volatile,原子类。。。 - 说说倒计时器和循环栅栏的区别
- 说一说为什么要有JIT
- 平时怎么学习的
- mysql聚簇索引和非聚簇索引
- 左外连接和内连接的区别
- 数据库的读写分离的作用
- hash和一致性hash的区别,为什么要用一致性hash
- spring boot
- 消息中间件了解吗,说说为什么要用消息中间件
- 项目中的缓存不一致怎么解决的
- 工作压力大能承受嘛
面试官对我的努力以及学习态度非常认可。
面试官的认可对我而言是莫大的鼓励,希望自己能一路走下去,不管发生什么。
二面:50分钟(P9面)早上面试官发来短信,约了晚上面试,让我准备一段最能体现我水平的代码。
纠结了一天,最后还是硬着头皮,准备展示自己的项目代码。
首先自我介绍
1 面试官用共享屏幕看了我的项目,项目太过简单。
感觉面试官一下没了兴趣。
2 之后面试官说我简历上写读过SSM框架源码,让我说一说SSM框架的源码
我愣了一下,我说简历上好像没有写吧,SSM框架源码我没读过。
3 问我读过哪些源码
我当时有点懵,第一反应,ha…ha…hashmap
面试官又问,除了hashmap你还读过哪些源码。
想了想,ConCurrentHashMap, ArrayBlockingQueue。。。
那就ConCurrentHashMap吧。你给我讲一讲。
理了下思路,准备开始讲了,面试官让我在IDE上把源码打开讲。
当时差点ConCurrentHashMap都没拼出来。(一紧张,以为是Cur开头的。。。)
之后就一直说Concurrenthashmap源码,面试官主要关注点在怎么是线程安全的。
插入怎么保证安全,读写间会不会影响,怎么保证安全。。。
因为之前项目和SSM框架的源码,我都没能很好的展示。所以concurrenthashmap就尽可能的多说,把自己好的一面展示给面试官。
说了大概40分钟吧,然后面试官说时间差不多了,先这样吧。
反问。面试官让我多参加开源的项目。
面完一度觉得自己凉了,没有高水平的代码展示,也没读过spring的源码。我的朋友也觉得这次希望不大。之后问了一面的面试官面试结果,没想到过了。
三面:25分钟(P9交叉面)面试官介绍
面试官介绍自己是中间件部门的,这轮是交叉面。
感觉面试官很和蔼,很有耐心。更多的是让我自己去讲述所学的知识。
自我介绍
项目介绍
说说自己会那些知识
我从头开始说,(集合类,JVM,JUC,Mysql,SSM。。。)
1 集合类用了那些设计模式
2 Juc
说说怎么理解线程安全
之后面试官一直在追问线程安全问题,问我JVM堆上会不会产生线程安全问题。(大概是这个意思)
我这方面确实不太了解。就说了创建对象时候的线程竞争问题。
后来面试官说了,他其实更想我能从底层去说,如果能从底层CPU开始说,那他会非常认可。
反问面试官很真诚的给了一些学习建议。
他让我加强学习的广度和深度。
先加强广度,多学一些技术知识。(确实我目前的会的技术还很少)
因为学习精力有限,再挑一些方面去加强深度。(我也没能做到在一些方面深入学习)
HR面:20分钟(视频面)没有自我介绍,直接开始问问题。
hr给我感觉还是比较亲切的。
大概问题:
1 非科班的你对比科班的学生,满分5分,给自己水平打几分(3分),怎样提高剩下的两分。
2 自己的强项和优势(自律,努力,对学习有热情)
3 在阿里每个人都很勤奋,这一点不算什么优势。(做事专注度高,精力旺盛)
4 最喜欢哪一类的人
5 家庭带来的一个影响(可以说好的,也可以是不好的)
6 遇到的心里落差最大的事情(挫败感最强的事情)
7 压力大能承受吗。
hr也很真诚,其实交流过程中,也能引发自己的一些思考。自己的优势,自己的性格,自己的抗压能力,到底是怎样的。
感受:其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
2021年Java中高级面试必备知识点总结在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。
本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。
目录:
(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)
部分内容:
对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。
不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注
57)]
[外链图片转存中…(img-Rc8zbzxj-1650599194358)]
对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。
不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注



