• 一位资深php程序员在北京的面试30个题目


    1、SESSION 保存在服务器的哪里?
    2、服务端是如何获取客户端的cookie?
    3、如何实现SESSION共享,共享的原理是什么?
    4、请大致说出LVS搭建的过程,文件共享原理是什么?
    5、网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?
    6、说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)
    7、如果你是项目经理,你如何管理你的项目团队的日常事宜?
    8、主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?
    9、说出你常用的版本控制器,SVN中需要配置哪几个配置文件
    10、LVS 在项目运行之前需要注意哪些事项,或者说会出现什么问题?
    11、ecshop为何出现字段冗余违犯设计模式,请说出为何这么做?
    12、常用mysql优化方式,尽可能多的说?
    13、memcache原理是什么?是否能存入2M的value?
    14、什么是队列?排它锁,Myisam 死锁如何解决?
    15、请说出mysql常用存储引擎?memory存储引擎的特点?
    16、如何最快速的插入5000条以上的数据?
    17、你用过多少开源框架?
    18、ecshop 购物车信息存放在哪里?
    19、PHP生成页面缓存的原理

    20、你所知道的缓存技术有哪些,分别做下简单介绍

    ------------------------------------------------------------------------------------------------

    1、SESSION 保存在服务器的哪里?
    答:通过php.ini指定,可存在指定目录的文件中或内存中,或数据库中!

    2、服务端是如何获取客户端的cookie?
    答:服务器每次处理请求的进候都可以抓取头信息的cookie并设置返回,

    3、如何实现SESSION共享,共享的原理是什么?
    答:配置主从数据库,将SESSION存入主数据库中,常见的做法还有在各服务器端安装MEMCAHCE,将SESSION存入各MEMCACHE中,

    4、请大致说出LVS搭建的过程,文件共享原理是什么?
    5、网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?

    6、说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)
    答:1NF:每一条满足原子性,不可以分割;2NF:每一条记录要满足唯一性,3NF:字段不冗余,有时我们还需要反三范式,常用的建模工具:phpMyAdmin,navicat for mysql,DOS命令行;

    7、如果你是项目经理,你如何管理你的项目团队的日常事宜?

    8、主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?
    答:基本条件:二台以上数据库服务器,
    配置流程:1.分别打开主从服务器的bin-log;从服务器+relaylog
    2.在主服务器根据需求建立相应的帐号并授权;
    3.从服务器使用己创建好的帐号连接主服务器读取二进制文件并分析后同步
    配置项:主:log-bin=mysql-bin;server-id=num(int);binlog-format=mixd/statement/row/
    从:log_bin=mysql-bin;server-id=num(int)//唯一;relay_log=mysql-relay-bin;log_slave_updates=1;relay_only=1;

    9、说出你常用的版本控制器,SVN中需要配置哪几个配置文件
    答:SVN,GIT,CVS;配置文件:mod_authz_svn.so mod_dav_svn.so移至服务器模块中并加载,配置权限,分配用户;

    10、LVS 在项目运行之前需要注意哪些事项,或者说会出现什么问题?

    11、ecshop为何出现字段冗余违犯设计模式,请说出为何这么做?
    答:在某些环境下反三范式反而增加了效率,因此这么做!

    12、常用mysql优化方式,尽可能多的说?
    答:SQL语句优化;存储优化;数据库配置;服务器配置

    13、memcache原理是什么?是否能存入2M的value?
    答:采用C/S模式,协义是普通文本,基于libevent机制处理数据放在内存中;memcache最大只能存入1MB数据,memcache并非为存储大数据而生,但可以考虑在存储前将值先压缩或拆分成多值分配到多个key中!

    14、什么是队列?排它锁,Myisam 死锁如何解决?
    答:在默认情况下MYisam是表级锁,所以同时操作单张表的多个动作只能以队列的方式进行;
    排它锁又名写锁,在SQL执行过程中为排除其它请求而写锁,在执行完毕后会自动释放;
    死锁解决:先找到死锁的线程号,然后杀掉线程ID
           
    15、请说出mysql常用存储引擎?memory存储引擎的特点?
    答:Myisam、InnoDB、memory,memory的特点是将表存到内存中,数度快,重启后数据丢失!


    16、如何最快速的插入5000条以上的数据?

    答:先生成数据文件,在用sql语句导入


    17、你用过多少开源框架?
    答:TP/CI/ZF/YII


    18、ecshop 购物车信息存放在哪里?
    答:order_info;order_goods;order_action;

    19、PHP生成页面缓存的原理
    答:将缓存内容放入OB缓存中,在OB缓存结束或脚本执行完毕后放入到程序缓存未尾并返回!

    20、你所知道的缓存技术有哪些,分别做下简单介绍
    答:ob缓存,通过模板技术写入文件类缓存;memcache;redis;redis和memcache最显著的区别在于数据不仅并于内存中,同时还会在磁盘中生成文件,即使重启,数据亦可被加载;

    21、HTTP 协议的原理,什么是全双工,什么是半双工?
    答:HTTP协议是一种无状态的协义,直白的讲就是请求和响应,全双工是指请求和响应同时进行,半双工指单个执行;

    22、ucenter通信原理?

    答:就是某个应用登陆后,然后后台轮询发送给同步登陆的应用的回调文件 ,回调文件接收到用户ID之后,生成cookie或者session然后进入登陆模式。

    23、Memcached的原理

    答:memcached 是以守护程序方式运行于一个或多个服务器中,等待接收客户端的连接操作,客户端可以由各种语言编写(例如PHP)。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。

    24、你用过多少种JS框架?举例说明优缺点
    答:jQuery、prototype、dojo、ext、YUI;
    jQuery:强大的DOM节点查询无人能出其左右,动画操方便; DOM封装的很好!高低版本兼容非常好
    prototype:较早的jS库,对ajax支持较好,基于原型链面向对象很强大
    dojo:更容易俣WEB页面具有动态能力;
    ext:强大的UI操作高居榜首;
    YUI:强大的类库,提供很多方法;

    25、如何衡量AJAX的使用(何时使用AJAX)
    答:AJAX既称无刷新技术,常用见的使用场景:表单验证,用户评分、点击;只要需要实时的与服务器交互时即可使用;
    26、什么是推技术,实现原理是什么?
    答:推技术又称COMET,即在客户请求时在服务器挂起长连接,一旦服务器有了新数据,它降立即反回给客户端,实时性好;

    27、什么是垂直搜索,斯芬克斯中分词原理?
    答:垂直搜索是指在特定的范围内搜索的上下文,搜索面只会越来越精细,而非越来越广泛;sphinx分词的原理:将文本拆分为多个单词从数据源的各个文档对像创建索引并将索引表存储于内存中!

    28、sphinx中无法ha_sphinx.so是用来做什么的?
    答:一个sphinx的存储模块;

    29、PHP常用的合并数组的方式?
    答:array_mergn;array_mergn_recursive;

    30、回答PHP读取文件速度快,还是读取mysql的数据快?为何?
    答:一般情况下读文件》读数据库;不同情况速度也会反向,如:数据库数据量很小,而同目录文件又非常多的情况下,读数据库大于读文件;

  • 相关阅读:
    spring 注解学习 一 Bean的注入
    jdk动态代理详解 二 代理失效
    jdk动态代理详解 一 入门
    tomcat中web应用的目录结构
    mongoose与mongodb 的版本兼容性表格
    树莓派3B安装ffmpeg过程记录
    ESP8266驱动SSD1306 ESP8266 for Arduino(NodeMCU U8G2库)
    ESP8266 for Arduino开发环境安装
    Mongodb3.4升张到4.0过程
    使用webgl(three.js)创建自动化抽象化3D机房,3D机房模块详细介绍(抽象版一)
  • 原文地址:https://www.cnblogs.com/yyjie/p/7409936.html
Copyright © 2020-2023  润新知