php面试八股文

网络、web服务器

  • 网络模型
    osi七层。tcp/ip4层
  • tcp
    三挥四握及其客户端与服务器的状态、排查,拥塞控制,滑动窗口,报文结构,为什么可靠,粘包
  • upd
    一般和tcp做对比,需了解基础
  • http
    http1,http1.1(和tcp keep-alive作区分),http2都需了解,https的ssl协议需了解
  • nginx
    工作模式,一些简单配置,用途,负载均衡策略

数据库(mysql)

  • 索引结构
    为什么使用b+tree,b+tree结构,什么时候会退化,和b tree、skiplist 比较
  • 索引
    类型,使用索引的优劣(就是空间换时间),索引的使用
  • 引擎
    一般就说说myisam与innodb异同。
  • 事务
    概念,隔离级别以及解决的问题,mvcc以及实现,redolog,undolog。分布式事务2PX 3PX
  • 日志
    binlog redolog undolog relaylog 慢日志 概念功能
  • 构架
    分库分表,主从,读写分离
  • 如果问mysql优化 建议从构架设计、数据库设计、sql三个方面说

缓存(redis)

  • 为什么单线程也高效
    数据都在内部里,io多路复用,多线程上下文切换的损耗
  • string hash list set sortset 的底层结构和场景必须清除的了解
    我之前在《redis设计实现》看 list 由linkedlist实现,后来发现之后是升级quicklist节省内存空间。hashmap和skiplist是重点。
  • redis主从过程
    9个过程,百度就有
  • cluster
    槽 ,hash一致性,大key(拆),热key(代码实现负载均衡)
  • 内存淘汰策略
    lru 可对比朴素lru,innodb缓冲池的lru,lfu
  • bitmap hyperloglog
  • 过期键删除
    惰性 定期 结合
  • 缓存与数据库一致性
    双删 延时双删 订阅binlog
  • 缓存穿透雪崩击穿
    提到布隆过滤器就要了解原理(位数组+几个哈希函数)
  • 故障转移
    参考raft

队列

  • 异步 削峰 解耦
  • rabbitmq感觉没啥好说的,kafka问就是不熟0.0

elasticsearch

  • 基础概念
  • 单机数据写入过程
    为何准实时
  • 多机数据读取/写入过程
    协调节点与哈希路由算法
  • 倒排索引
    分词, trim dictionary,跳表,trim index,postling list,fst,bitmap

linux

  • top free 问的多点
  • epoll select poll
  • 协程 上下文切换 用户态内核态

算法

  • 除了一线厂,其实只要了解一下几个排序算法的实现、时间复杂度、优劣就行
  • 面一线厂肯定要刷leetcode,感觉刷个300道差不多,字节的最难

项目

  • 自己的项目一定要有通彻的了解,最好做一下总结,用到的技术不管是不是自己写都要了解。有些场景的设计要思考为什么(没有原因也要想个理由)
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值