概况
有很长一段时间没有做PHP开发了,最近有做PHP开发的小伙伴在个人微信公众号后台留言,能够分享一些PHP有关的面试题。于是给安排上。
这里说明一下,很长一段时间不做PHP,不是因为像很多人说的PHP不行了,不准备继续做PHP了。而是个人在尝试新的技术领域而已。这和什么语言没有关心。也希望大家不要在说什么PHP不行,好好学好技术,没有什么语言行不行的。
分享这些面试题的最大初衷是因为帮大家汇总这两年面试PHP中遇到的一些面试题,帮助大家知道PHP面试一般都是那些试题。其实大家会发现,面试问来问去都是那些技术点,无所谓的就是换了不同的方式问你而已。只要你把基础打牢固,就不用担心面试官的问题啦。
关于面试题的内容,后面如果发现有其他的面试题,也会做一个更新。喜欢的,想提升技术的。可以持续关注一下。持续更新的内容,我也放在这个地方。
汇总在一起难免有显得比较乱,我这里放在个人的微信小程序里面,也方便大家平常看。同时针对不同的类型,试题的深难度也做了一个分类,也方便大家查看。
PHP相关
-
平常都使用的什么框架?Laravel和ThinkPHP框架的区别?
-
Laravel常用到的功能有哪些?Laravel依赖注入实现的原理是怎么样的?
-
Swoole你用到了哪些功能?对协程这一块了解吗?
-
能说说PHP的生命周期吗?传统的php-fpm模式和swoole有什么区别?
-
在项目中都是怎么用hyperf的?了解hyperf中的依赖注入实现原理吗?使用hyperf中的类是怎么实现的,是通过注解引入吗?
-
说说你在项目中使用到的PHP函数,任意说几个以及它的功能?
-
PHP的垃圾回收机制是怎么样的?
-
PHP5的版本和PHP7之间有哪些区别?对PHP8了解吗,任意说说其中的新特性?
-
说说php-fpm与NGINX工作原理是怎么样的?
-
说一说PHP中的垃圾回收机制是怎么样的?
-
cgi与fast_cgi关系是怎么样的?
-
isset、empty和is_null区别是怎么样的?如果传递一个null,该三个函数分别返回什么?
-
require_once与include_once,require与include的区别?为什么一个是警告一个是致命错误?
-
php5与php7的区别是怎样的?
-
php-fpm的工作模式?进程数量配置依据是什么?
-
说说PHP数组中的数据结构是怎么样的?
-
能说说说session和cookie的区别吗?
Redis相关
-
平常使用Redis都是在哪些场景?
-
Redis的持久化有哪几种?有什么区别?实现的原理是怎样的?
-
Redis的事务了解吗?事务都有哪些注意的地方?
-
Redis都有哪些数据类型?你是怎么选择数据类型的?底层的数据结构是怎么样的?
-
Redis能够实现命令批处理吗?
-
Redis的哨兵机制了解吗?实现原理是怎么样的?
-
Redis的主从复制实现原理是怎么样的?如何保证数据一致性?数据延迟又该如何处理?
-
利用Redis如何实现队列功能?
-
消息发布与订阅有使用过吗?怎么使用的?中间又遇到过什么问题吗?
-
如何解决缓存穿透、击穿和雪崩问题以及这三种情况都是什么意思?
-
Redis作为一个内存型数据库,如何更好的解决内存的占用?
-
Redis与memcached的区别?什么时候会选择memcached?
-
能说说Redis为什么快吗?
-
Redis的线程模型熟悉吗?你能说说Redis的线程模型吗?
-
能说说Redis的优缺点吗?
-
能说一下Redis的内存是怎么划分的吗?
-
知道什么是热key,热key的问题该怎么解决呢?
-
怎么实现Redis的高可用问题?
-
能说说Redis的集群原理吗?
-
能说一下Redis如何实现分布式锁吗?
-
如果有大量的key需要设置同一时间过期,一般都需要注意些什么?
-
Redis都有哪些缓存类型?
-
如何解决Redis的并发竞争key的问题?
-
如何解决Redis和数据库双写一致性的问题?
-
MySQL里面有20000w的数据,Redis中只能存20w的数据,如何保证Redis中的数据都是热点数据。
-
Redis的过期策略都有哪些?
-
定期+惰性都没有删除过期的key怎么办?
-
Redis的过期策略和内存淘汰机制是怎么样的?
-
说说Redis的数据类型都有哪些?
-
有使用Redis做异步队列吗?你是怎么使用的?
-
pipeline有什么好处?为什么要用pipeline?
-
能说说Redis各种数据类型底层的数据结构吗?
-
一般你都是在哪些场景下使用Redis的?
-
Redis与其他的key-value存储都有什么不同?
-
能说说主从复制的原理吗?
-
主从复制如果出现数据不一致的情况,一般都有哪些问题会导致这种情况?
-
主从复制都有哪几种方式?
-
主从复制都是怎么配置的?说说常见的配置项都有哪些?
-
Redis主从复制的同步机制了解吗?
-
主从复制中的复制客户端缓冲区都是干什么的?他运行的原理又是怎么样的呢?
-
Redis是如何做持久化的?
-
持久化的方式都有哪些?
-
如何选择合适的持久化方式?
-
持久化数据和缓存如何做扩容?
-
持久中AOF和RDB的优缺点可以说说看吗?
-
如果做持久化时,服务宕机了怎么办?
MySQL
-
列举几个MySQL索引失效的情况?该如何优化这些情况?
-
MySQL索引都有哪些?InnoDB索引是用的什么数据结构,为什么使用这种数据结构?
-
MySQL主从复制是如何实现的?如果从节点挂了,重新启动从节点,如何保持数据一致性?如何解决数据同步延迟问题?
-
说说你优化SQL语句的几种思路有哪些?
-
说说MySQL中的锁有哪些?之间的区别?
-
MySQL中的事务了解吗?说说其4大特性?
-
事务中隔离性,有几种情况?这几种情况分别会产生什么问题?
-
MySQL中MVVC实现的原理是怎么样的?
-
mongodb与mysql的关系,为什么日志系统会选择mongodb?
RabbitMQ
-
主要使用的场景在哪些地方?
-
工作模式都有哪些?之间的区别是怎么样的?
-
如何保证消息的可靠性?
-
日志存储在RabbitMQ,如果同步到MongoDB里面,如何解决新旧数据问题?(这里提到了一个公司实际业务问题,公司日志会存储到MongoDB,如何保证每次存的都是最新的消息)
-
你知道哪些消息队列?这些消息队列有什么区别?
网络相关
-
对http熟悉吗?能说一下有其特点吗?能说说常见的http请求方式以及每一种请求方式的特点吗?
-
能说说http1和http2之间的区别吗?
-
说说网络的分层模型有哪些吗?其中每一层都是干什么的?
-
说说TCP的三次挥手、四次握手吗?
-
用户输入一个域名到显示页面数据都发生了什么?
-
GET和POST的区别是什么?