明源云 PHP 面试题

1.tcp与udp的区别 tcp 面向连接的,提供可靠的基于字节流的传输协议 udp 非面向连接的不可靠的传输协议 ​

2.tcp的三次握手,简述流程 这个被问烂的题目,多花点时间去了解吧 ​

3.设计模式,手写你熟悉的设计模式代码 单例,抽象工程,写个单例多简单,记得单例的构建函数要是private权限的。 ​

4.写出语句执行结果

<?php
$a = '1';
$b = &$a;
$b = "2$b";
$c = ++$b;
$d = ($c > $b) ? $b : $c;

var_dump(implode(',', [$a, $b, $c, $d]));

结果是:string(11) “22,22,22,22” 注意是var_dump(),严谨点结果是要有string(11),直接写22,22,22,22也行,我相信面试官是不会计较这个

5.nginx的错误日志error.log中报alert :accept() error,Too many open file,请分析这个是什么错。 这个我当时留空了,不会。 上网查了下,可以看看机器的系统配置 ulimit -a 列出的open_files:1024,代表单进程最大文件描述符限制了1024个, 所以上面的报错是这里导致的。

6.mysql的四种隔离级别及其之间的层次关系 1.未提交读,提交读,可重复度,串行

7.ls -lhi 命令在控制台中输出如下: 12890741190 drwxr-xr-x 2 www www 64B 3 31 12:04 testDirectory 12890741196 -rw-r–r-- 1 www www 0B 3 31 12:04 testFile

请描述每一列对应的含义。

8.myisam与innodb的索引结构 b tree 和b+ tree

9.什么情况下产生行锁,什么情况下产生表锁 innodb才支持行锁,条件字段用到索引了就会产生行锁,没有用到索引就会表锁 mysiam是只支持表锁,没有行锁。

10.单点登录系统原理 11.秒杀系统如果保证高并发,并且如何实现库存 redis异步队列

12.redis的两种数据持久策略及各自优缺点 aof和rdb

13.webserver + php-fpm 的cpu load 和 连接数飙高,mysql的cpu load和连接数也飙高,请你说出可能造成改问题的原因及解决方案。 这个就考查你排查问题的能力了。

还有两道题,忘了,不过第13题是最后一道题,也是最难的,还有两道好像是基础知识来的,好像不难。