MICUU
微资讯
声卡
创新2024全套教程
5.1声卡全套
创新声卡驱动
板载声卡调试全套教程
Sam机架安装
Sam机架
音效助手
专题
文档
技术文档汇总
站内文档
更多
软件
更新日志
关于
装机必备
Gramos模板
光年后台模板
Betube模板
美图
友情链接
站内导航
关于
搜索
退出登录
登录
1
PHP面试需要准备的基础知识
2
[面试]关于高并发处理的一些整理
3
2020前端面试题实战分享
4
PHP面试需要具备的技能
5
php2021年面试题准备
6
2021年春季PHP面试题总结汇总
7
2021年春季PHP面试题总结汇总-无答案版
8
2021PHP中高級面试题整理
9
2021高级面试题分享
10
2022年高级程序开发面试题
11
缓存穿透、缓存击穿、缓存雪崩-面试题小结
12
2022年PHP高级面试题整理-持续更新中
13
PHP面试题
原创
2022年PHP高级面试题整理-持续更新中
2022-03-28
117.54w热度
   2022年了,虽然现在是广大互联网裁员,但是我们如果不转行的话还是需要把自身的基础本领练到过硬,面试的时候要对答如流才可以,下面是目前流传的面试八股文,小编也会不定期更新问题以及答案。如果您觉得对您有用的话,请`ctrl+d`收藏我们 ## mysql **问:有哪些事务隔离级别,Mysql 的事务隔离级别是怎么实现的?(每家都问)** > 答:隔离级别及原理解析 > > | 事务隔离级别 | 脏读 | 不可重复读 | 幻读 | > | ---------------------------- | ---- | ---------- | ---- | > | 读未提交(read-uncommitted) | 是 | 是 | 是 | > | 不可重复读(read-committed) | 否 | 是 | 是 | > | 可重复读(repeatable-read) | 否 | 否 | 是 | > | 串行化(serializable) | 否 | 否 | 否 | > > 参考:https://blog.csdn.net/A1028151949/article/details/88430895 > > 附:事务的基本要素: > > 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 > > 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 > > 3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。 > > 4、持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。 **问:索引原理(每家都问)** > 答:参考 https://blog.csdn.net/sxb0103/article/details/91488713 > **问:分库分表的策略,如果要按照分表字段以外的字段作为查询条件怎么办(每家都问)** > 答:参考:https://www.cnblogs.com/cxxjohnson/p/9048518.html > **问:MVCC 和间隙锁原理(滴滴 字节 百度)** **问:explain 的 type 字段有哪些(知乎)** > 答: > > - **system**:系统表,少量数据,往往不需要进行磁盘IO; > - **const**:常量连接; > - **eq_ref**:主键索引(primary key)或者非空唯一索引(unique not null)等值扫描; > - **ref**:非主键非唯一索引等值扫描; > - **range**:范围扫描; > - **index**:索引树扫描; > - **ALL**:全表扫描(full table scan); > > 更详细的请参考文章:https://www.cnblogs.com/benbenhan/articles/13212861.html > **问:update 语句的执行流程,binlog 的作用和几种格式(滴滴)** > 答:https://blog.csdn.net/baiye_xing/article/details/113032790 > **问:主从同步的原理和问题(字节 滴滴 陌陌)** > 答: > 同步原理https://www.jianshu.com/p/4c41e95d787a > > 同步实战:https://www.jb51.net/article/108312.htm **问:发生死锁的原因以及如何解决(滴滴 顺丰)** > 答:所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。表级锁不会产生死锁.所以解决死锁主要还是针对于最常用的InnoDB。 **问:如何优化大 offset(陌陌)** > 答:使用limit语句时,当数据量偏移量较小时可以直接使用limit,当数据量偏移量较大时,可以适当的使用子查询来做相关的性能优化。 ## redis **问:缓存如何保证一致性(每家都问)** > 答:首先,我们要明确一点,缓存不是更新,而应该是删除。 > > 删除缓存有两种方式: > > 1. 先删除缓存,再更新数据库。解决方案是使用延迟双删。 > > 2. 先更新数据库,再删除缓存。解决方案是消息队列或者其他binlog同步,引入消息队列会带来更多的问题,并不推荐直接使用。 > > 参考地址:https://zhuanlan.zhihu.com/p/338833847 请忽略广告 **问:用过 redis 哪些数据结构,使用场景是什么(每家都问)** > 答: > 1:String(字符串) 场景:存储key-value键值对 > 2:list(列表) 场景: > - 消息队列:`lpop`和`rpush`(或者反过来,`lpush`和`rpop`)能实现队列的功能 > > - 朋友圈的点赞列表、评论列表、排行榜:`lpush`命令和`lrange`命令能实现最新列表的功能,每次通过`lpush`命令往列表里插入新的元素,然后通过`lrange`命令读取最新的元素列表。 > 3:hash (字典) > > 场景: > > - 购物车:`hset [key] [field] [value]` 命令, 可以实现以`用户Id`,`商品Id`为`field`,商品数量为`value`,恰好构成了购物车的3个要素。 > - 存储对象:`hash`类型的`(key, field, value)`的结构与对象的`(对象id, 属性, 值)`的结构相似,也可以用来存储对象。 > > 4:set(集合) > > 场景:好友、关注、粉丝、感兴趣的人集合: > > 5:zset(有序集合) > > `zset` 可以用做排行榜,但是和`list`不同的是`zset`它能够实现动态的排序,例如: 可以用来存储粉丝列表,value 值是粉丝的用户 ID,score 是关注时间,我们可以对粉丝列表按关注时间进行排序。 > > `zset` 还可以用来存储学生的成绩, `value` 值是学生的 ID, `score` 是他的考试成绩。 我们对成绩按分数进行排序就可以得到他的名次。 > 参考地址:https://zhuanlan.zhihu.com/p/116742225 **问:redis 的 connect 和 pconnect 的区别,pconnect 有什么问题(滴滴 陌陌)** > 答:connect:脚本结束之后连接就释放了。 pconnect:脚本结束之后连接不释放,连接保持在php-fpm进程中。每个php-fpm进程占用一哥连接,当php-fpm进程结束时会释放掉 所以使用pconnect代替connect,可以减少频繁建立redis连接的消耗。 **问:redis 如何实现分布式锁,有什么问题(陌陌)** **问:redis 为什么用跳表实现有序集合?原理,用有序集合的场景(字节 滴滴)** > 答:本文讲解的非常清楚,大家需要理解并且记忆 https://blog.csdn.net/z69183787/article/details/89396748 **问:主从同步的原理,哨兵和集群的区别(滴滴)** > 答:问题主要需要理解,故大家仔细阅读下面推荐的文章。 https://www.cnblogs.com/chenwenyin/p/13549492.html redis cluster 用的什么协议同步数据,哨兵的选举呢(陌陌) rdb 和 aof 的原理(滴滴 高德) 数据过期和淘汰策略(滴滴 高德 字节) **问:缓存雪崩 击穿 穿透(滴滴 陌陌)** > 答:https://micuu.com/new/2619.html ## php php-fpm 的生命周期,创建进程方式,各自的优缺点(腾讯 百度 滴滴 陌陌) php 数组遍历为什么能保证有序(滴滴) php 怎么实现的弱类型,怎么实现一个扩展(腾讯) 常见魔术方法和函数(腾讯 滴滴) ## es 深度分页会有什么问题(滴滴 百度 陌陌) 倒排索引的原理(字节 高德) lsm 树原理(字节) ## kafka kafka 的架构,大致储存结构(高德 字节 滴滴) 如果消费者数超过分区数会怎么样?(顺丰 滴滴) 怎么保证数据的可靠投递?(陌陌 字节) 消费者的 offset 存在哪里?(字节 腾讯 陌陌) 如何通过 offset 定位消息?(字节) 时间轮的原理(陌陌 顺丰) kafka 写入高性能的原因,sendfile 和 mmap 原理,为什么不用 splice(滴滴) ## 网络 https 原理,tls 握手需要几个 rtt?(滴滴 百度) 浏览器访问某个网址的详细过程,四次挥手(腾讯 滴滴) http2 和 quic 原理(字节) 分布式系统 分布式事务怎么处理(高德 陌陌) 简述 raft 原理(陌陌) 分布式 id 的几种实现和优缺点(滴滴) 降级 限流 熔断实现原理(高德 陌陌) ## 其他 布隆过滤器的实现原理和使用场景(滴滴) 进程间通信有哪几种方式(腾讯) 进程线程协程区别(滴滴 知乎) lvs 原理,如何保证高可用(滴滴) 502 504 什么原因,如何处理(滴滴 百度 腾讯 顺丰) 给你两个一模一样的玻璃球,求出 100 层楼哪一层开始玻璃球会被摔碎(腾讯) 一致性 hash 原理,怎么解决节点少数据倾斜的问题(滴滴 陌陌) ## 系统设计 设计秒杀系统,需要支持 100W 以上 QPS(滴滴) **问:设计微博首页,需要拉取所有关注用户的最近 20 条微博(百度)** > 答:**先说逻辑:** > 1、每一个用户都会有一个单独的消息池,所有该用户需要看到的消息都会放到这个池子里。 > 2、如何把消息放到消息池中呢,有三种主要方式(可以根据需求选择): > 1.第一种方式称为Push方式,当一个消息诞生的时候(如某人发了一个微博),消息系统就遍历关注了该用户的人,审查系统等等,把消息推送过去,标记为未读状态。优点是信息实时性较高,缺点是要存储数据是不是push成功了比较复杂。 > 2.第二种方式是Pull方式,即用户定期的轮训所有消息源(关注对象、系统通知等),把对自己可见的数据拉取过来,优点是减轻消息服务器的负担,即消息服务器端不用管有没有拉取成功,只要提供数据源即可,缺点是实时性不高。 > 3.Push+Pull方式,即实时性要求高的数据,如关注请求、好友请求之类的使用push主动推过去,系统通知之类的可以用pull的方式每隔一段时间去取。 > **性能问题** > 1、消息服务作为微博系统中最重要的服务之一,当然是从微博平台独立出来,开放TCP接口接收客户端(微博Web平台)的请求。 > 2、微博Web平台和消息服务器要设定好信息传递协议,比如开放一个TCP链接,按照某种特定的格式一次性把大量数据传过去,而不是一点一点多次传过去。 > 3、其他就没什么了,做好服务器运维,有硬件上硬件,没硬件拼数据结构和算法的设计。 抢红包算法设计(百度 滴滴) 设计一个短链系统(百度)
注:原创不易,转载请注明出处(
https://micuu.com/new/2713.html?special=2717
),本站所有资源来源于网络收集,如有侵权请联系QQ245557979进行清除。
最后修改与 2022-03-29
上一篇:
有哪些软件可以进行文字比对,做差异对比,对比版本的?哪些是程序员必备的对比软件
下一篇:
不知道为什么,感觉拼多多最近发货很慢!
留言反馈
请先登录
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈
立即留言