搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记。
曾经看过数据结构、设计模式、HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘记了。
所以通过这次搜集题目,可以复习复习一些知识点。而且自己动手写写,动脑思考,能更好的记住这些知识点。
留份记录也方便以后自己查看。题目基本都来自网络,如果有不正确的地方欢迎指出或补充。
轻量级,比apache 占用更少的内存及资源。高度模块化的设计,编写模块相对简单
抗并发,nginx 处理请求是异步非阻塞,多个连接(万级别)可以对应一个进程,而apache 则是阻塞型的,是同步多进程模型,一个连接对应一个进程,在高并发下nginx 能保持低资源低消耗高性能
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。
CGI:在2000 年或更早的时候用得比较多, 以前web服务器一般只处理静态的请求,web服务器会根据这次请求的内容,然后会fork一个新进程来运行外部c程序 (或perl脚本...), 这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出。
如果下次用户还请求改动态脚本,那么web服务器又再次fork一个新进程,周而复始的进行。
web内置模块:后来出现了一种更高级的方式是, web服务器可以内置perl解释器或php解释器。 也就是说这些解释器做成模块的方式,web服务器会在启动的时候就启动这些解释器。 当有新的动态请求进来时,web服务器就是自己解析这些perl或php脚本,省得重新fork一个进程,效率提高了。
fastcgi:是web服务器收到一个请求时,他不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退 出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回 给web服务器,最后自己接着等待下一个请求的到来,而不是退出。
a. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
b. Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存。
d. 如果要说内存使用效率,使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。当然,这和你的应用场景和数据特性有关。
e. 如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcached都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
f. Redis和Memcache在写入性能上面差别不大,读取性能上面尤其是批量读取性能上面Memcache更强。
6.4、PHP 有哪些优缺点?
d. PHP已经有很成熟的面向对象体系,可以支持面向对象的开发 (PHP5)
e. 有很多很好现有的框架,开源的论坛,以及博客等
f. 持续的更新和维护,以及社区的支撑,很多技术爱好者的共同努力,使PHP得到很广泛的应用,很多知名的网站也在使用PHP作为开发语言
a. 对多线程支持不是很好,只能做一些简单的模拟线程
b. 语法不够严谨,如果以前做C++,Java 的就会很有感觉了,比如变量还没有定义,就可能直接使用
c. 也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java
PHP面试出场率较高的题目
面试题目: PHP 有哪些优缺点?