当前位置: 首页 > 后端技术 > PHP

总结以下面试问题

时间:2023-03-29 19:16:58 PHP

什么是操作系统IO多路复用?有哪些API?select和epoll的区别?电平触发和边沿触发有什么区别?使用时应该注意什么?epoll存储描述符的数据结构是什么?select是否有描述符限制?多少?进程/线程/协程有什么区别?go和swoole的协程实现有什么区别?PHP在cli方式下如何描述几个生命周期?php-fpm运行机制?在php-fpm模式下,kill-9master-pid,会发生什么?killmatser-pid怎么样?内存分配过程?为什么要这样设计?GC似乎要解决什么问题?什么时候触发GC?下面说一下nginx和php-fpm通信机制的大致过程。fast-cgi和cgi有什么区别?php-fpm创建worker进程的规则是什么?不同场景如何选择?php和mysql之间的通信机制?长链接和短链接有什么区别?它是怎么发生的?连接池如何实现?swoole协程的原理?mysqlinnodb数据是如何组织的?B+树结构和插入细节?为什么主键一般都是自增的?和B树有什么区别?为什么索引使用B+树而不是B树或其他平衡树?为什么redis可以使用skiptable?常见的优化(这里就不展开了,主要是覆盖索引查询和最左匹配)redolog/undolog/binlog有什么区别?binlog有几种格式?说下两个提交阶段?事务隔离级别以及不同级别会出现的问题,innodb默认是哪个级别?MVCC是如何实现的?快照读取和当前读取有什么区别?如何解决幻读问题?什么时候发生死锁?应用层应该怎么做才能避免死锁?mysql如何处理死锁?int占用多少字节?int(3)和int(11)之间有区别吗?我可以在int(3)中存储1亿吗?varchar有多长?sql执行过程中redissds是什么结构?为什么要保存长度?和c中的字符串有什么区别?哈希是如何实现的?如何解决哈希冲突?除了hashTable还有别的吗?zset是如何实现的?跳表是怎么插入的?为什么选择跳表而不是其他平衡二叉树?除了跳台还有别的吗?重新哈希过程?你会主动rehash吗?队列可以用redis实现吗?优缺点都有什么?如何用redis实现延迟队列?rdb和aof进程?为什么rdb可以通过创建子进程来执行?(这里考察一头牛)这两种持久化方式会不会丢数据?为什么redis快?(主持人检查IO多路复用和不锁定的单线程)什么是一致性哈希?节点少时数据分布不均匀怎么办?简单说一下几种key淘汰策略,redis中的lru算法什么时候触发?实施细节是什么?如何保证合理的key被淘汰?lua脚本的作用是什么?nginxLVS和Nginx的缓存击穿/穿透/雪崩处理策略作用于osi的哪一层?负载均衡算法数据结构布隆过滤器,什么时候用?有什么好处?算法leetcodeeasy-level题目,细节我就不写了,难度比较低