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的数据快?为何?
答:一般情况下读文件》读数据库;不同情况速度也会反向,如:数据库数据量很小,而同目录文件又非常多的情况下,读数据库大于读文件;

一位资深php程序员在北京的面试30个题目的更多相关文章

  1. 一位90后程序员的自述:如何从年薪3w到30w!

    初入职场之时,大多数人都应该考虑过这样的一个问题,如何找到一种实用,简化web流程的方法,在工作之中能有所提升和突破. 学好哪些?基础必须精通! 九层之塔,起于垒土;千里之行,始于足下.入门之前,这些 ...

  2. Java程序员普遍存在的面试问题以及应对之道(新书第一章节摘录)

    其实大多数Java开发确实能胜任日常的开发工作,但不少候选人却无法在面试中打动面试官.因为要在短时间的面试中全面展示自己的实力,这很需要技巧,而从当前大多数Java开发的面试现状来看,会面试的候选人不 ...

  3. 【Mood-10】每个程序员都应该读的30本书

    “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...

  4. StackOverflow程序员推荐:每个程序员都应读的30本书

    “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...

  5. 【转】StackOverflow程序员推荐:每个程序员都应读的30本书

    “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...

  6. 37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了

    在职场论坛看到这样一个帖子,程序员小A被前公司裁员了,裁员之后也并没有特别气馁,打算重头再来,结果却被现实打击到了. 他大学毕业的时候进入到一家知名互联网公司上班,工作期间,也是不断学习,提升自己的能 ...

  7. 程序员遇到Bug时的30个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

  8. .Net程序员学用Oracle系列(30):零碎补充、最后总结(The End)

    1.同义词 2.Flashback 技术 3.连接字符串的写法 4.转义字符 & 特殊运算符 5.文件类型 6.查看参数 & 修改参数 7.AWR 工具 8.学习方法 & 学习 ...

  9. 资深阿里程序员一一为你解刨Web前端知识体系结构,付出与收获成正比!

    只要接触过前端,都会指导web前端的知识主要由三部分组成:分别为静态html,样式css,动态javascript(简称js)这三大部分组成.其三部分组成的一个体系的复杂程度不亚于其他一门技术的复杂程 ...

随机推荐

  1. Java你不知道的那些事儿—Java隐藏特性

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3460373.html 每 种语言都很强大,不管你是像我一样的初学者还是有过N年项目经验的大神,总会有你不知道的 ...

  2. Python3 不能直接导入reduce

    python 3.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce. reduce的用法 reduce(fun ...

  3. 常用模块一(os模块、序列化模块(json和pickle))

    一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...

  4. Server responded "Algorithm negotiation failed" SSH Secure链接服务器错误

    Ubuntu 16.04安装openssh-server后,使用ssh客户端连接时可能报此错误,情况如下图所示: server responded "algorithm negotiatio ...

  5. 004-搭建框架-实现AOP机制【一】代理技术

    前景提要 监控方法性能.执行时间.记录日志等 AOP( Aspect Oriented Programming)面向方面编程. 在AOP中,需要定义一个Aspect(切面)类来编写需要横切业务的逻辑代 ...

  6. Java设计模式之《单例模式》及应用场景(转发:http://www.cnblogs.com/V1haoge/p/6510196.html)

    所谓单例,指的就是单实例,有且仅有一个类实例,这个单例不应该由人来控制,而应该由代码来限制,强制单例. 单例有其独有的使用场景,一般是对于那些业务逻辑上限定不能多例只能单例的情况,例如:类似于计数器之 ...

  7. python基础28 -----python中sockserver模块

    一.Python中的sockserver模块 1.该模块与sock模块不同之处是该模块自动帮我们分装好了一些功能,让我们在编程的时候直接调用这些功能就可以了,节省了编程步骤. 2.如图所示 注释:上图 ...

  8. 递归函数(Day15)

    一.递归的定义 在一个函数里面再调用这个函数本身 递归特性 1.必须有一个明确的结束条件 2.每次进入更深一层递归时,问题规模相比于上一次的递归有所减少 二.递归的应用 1.递归函数与三层菜单 men ...

  9. Loadrunder脚本篇——关联数组(参数数组)

    导言 前面说过可以用关联取出服务器相关的一些动态变化的信息,前面也提过web_reg_save_param中可以设置ord=all,代表从服务器中取出的是一个数组,它试用的场景是当我访问一个发帖网站, ...

  10. Linux文件系统管理 fdisk分区命令

    概述 我们在安装操作系统的过程中已经对系统硬盘进行了分区,但是如果我新添加了一块硬盘,想要正常使用时,在Linux中有专门的分区命令 fdisk 和 parted.其中 fdisk 命令较为常用,但不 ...