当前位置: 首页 > 面试经验 >

小米后端一面

优质
小牛编辑
78浏览
2023-05-19

小米后端一面

总结

面试体验不错,会根据简历情况合理提问

很热心的给出了改进建议


到岗情况询问

自我介绍

es 使用情况

过滤器是怎么实现的

为什么能减少过滤时间

它的那个索引和你们这个 ES 集群的基本情况有了解吗?

你们 ES 的那个集群架构是什么样子的?然后索引数据有多少,分片数据有多少?

你们的索引是怎么创建的?

什么叫集群?什么叫节点?什么叫分片?又什么叫副本?

···

在Elasticsearch中,集群是由一个或多个节点组成的集合,这些节点共同协作来存储和处理数据。每个节点都是一个单独的实例,它可以独立地运行,但是当它们连接在一起时,它们可以组成一个更强大的集群。

节点是Elasticsearch集群中的一个单独的实例,它可以运行在单独的计算机上,也可以在同一计算机上运行多个节点。每个节点都具有存储、索引和搜索数据的能力,它们之间通过网络进行通信和协作。

分片是将索引分成更小的部分,每个部分称为分片。分片的目的是将数据分布在多个节点上,以提高性能和可用性。每个分片都可以在集群中的任何节点上运行,并且它们可以动态地分配和重新分配,以实现负载均衡。

副本是分片的一份拷贝,它们在节点之间进行复制,以提高可用性和容错性。每个分片可以配置一个或多个副本,这些副本可以在不同的节点上运行。当一个节点失败时,副本可以自动地提供服务,以保持整个集群的可用性。

···

CAP、Quorum、NWR

(分布式八股吟唱+ES Quorum举例

5 个主分片,每个主分片有 2 个副本,你觉得应该是多少个分片可用才可以直接写?

倒排索引原理

Redis 使用情况

AOF 和 RDB

AOF 记录的是什么? RDB 记录的是什么?

什么时候进行RDB?

这两种方式各有什么优缺点?

这两个日志哪个更大?

···

一般情况下,AOF(Append Only File)日志文件比RDB(Redis Database Backup)快照文件更大。

因为AOF日志文件记录了每个写操作,而RDB快照文件只是在指定时间间隔内对Redis数据库进行快照备份。如果Redis数据库中的数据经常发生变化,AOF日志文件将会比RDB快照文件更快地增长,因为它需要记录每个写操作。

但是,AOF日志文件也可以通过配置来控制其大小和增长速度,例如可以使用AOF重写来压缩和优化AOF日志文件。而RDB快照文件的大小则取决于备份时间间隔和Redis数据库中的数据量。

···

Q:假设现在两台机器都安装了 Redis,分别只开启 AOF、RDB,同时宕机30s,你觉得哪个丢失的数据多?(假设AOF 写入数据交给操作系统去写)

···

在这种情况下,如果两台机器都只开启了AOF或RDB其中一种持久化方式,那么宕机30秒后重新启动Redis,AOF日志文件中丢失的数据可能会比RDB快照文件中丢失的数据多。

因为AOF日志文件记录了每个写操作,而RDB快照文件只是在指定时间间隔内对Redis数据库进行快照备份。如果Redis数据库中的数据经常发生变化,AOF日志文件将会比RDB快照文件更快地增长,因为它需要记录每个写操作。如果Redis在宕机前有未被写入磁盘的AOF缓冲区数据,那么这些数据将会丢失。

而对于RDB快照文件,如果Redis在宕机前已经完成了快照备份,那么在重新启动Redis时,它将从RDB文件中恢复数据。但是,如果Redis在宕机前没有完成快照备份,那么RDB文件中也会丢失一些数据。

需要注意的是,如果两种持久化方式都开启,那么在Redis重新启动时,它将首先从AOF日志文件中恢复数据,然后再从RDB快照文件中恢复数据。这样可以最大程度地减少数据丢失的可能性。

···

Q:搜索接口优化怎么做的?

优化 ES 搜索,展开讲讲

--算法

offer11 旋转数组的最小数字

--反问

业务

技术栈

给点建议

···es 底层原理需要再去学习

#我的实习求职记录#
 类似资料: