面试题集:1.SESSION保存在服务器的什么地方?2、服务端如何获取客户端的cookie?3、session共享如何实现,共享的原理是什么?4、请简述LVS的搭建过程,文件共享的原理是什么?5、网络共享服务器上传的数据是上传到一台服务器吗?或者更多?如何实现同步?6.说说你知道的数据库设计范式?常用的建模工具有哪些?(mysql建模工具)7.如果你是项目经理,你是如何管理你项目组的日常事务的?8、主从数据库的配置有哪些基本条件,需要配置什么?9、说说你常用的版本控制器,在SVN中需要配置哪些配置文件10、在LVS中运行项目前需要注意哪些事项,否则会出现什么问题?11、ecshop为什么会出现违反设计模式的字段冗余?,请告诉我你为什么这样做?12.常用的mysql优化方法,尽量多说?13、memcache的原理是什么?2M的值能存吗?14.什么是队列?独占锁,如何解决Myisam死锁?15.请命名mysql常用的存储引擎?内存存储引擎有什么特点?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、navicatformysql、DOS命令行;7.如果你是项目经理,你是如何管理项目组的日常事务的?答:无8、配置主从数据库需要具备哪些基本条件,需要配置哪些内容?答:基本条件:两台或多台数据库服务器,配置过程:1、分别打开主从服务器的bin-log;从服务器+relaylog2.根据需求在主服务器上创建并授权相应的账号;3、使用创建好的从服务器连接到主服务器读取二进制文件,分析同步后的配置项:Master:log-bin=mysql-bin;server-id=num(int);binlog-format=mixd/statement/row/Slave:log_bin=mysql-bin;server-id=num(int)//unique;relay_log=mysql-relay-bin;log_slave_updates=1;relay_only=1;9.命名你常用的版本控制器,哪些需要在SVN配置文件中配置答案:SVN,GIT,CVS;配置文件:mod_authz_svn.somod_dav_svn.so移动到server模块并加载,配置权限,分配用户;10、项目在LVS中运行前需要注意哪些事项,否则会出现什么问题?11、ecshop为什么会出现违反设计模式的字段冗余?请告诉我为什么?答:在某些环境下,反三范式其实可以提高效率,所以这样做!12.常用的mysql优化方法,尽量多说?答:SQL语句优化;存储优化;数据库配置;服务器配置13.memcache的原理是什么?是否可以存储一个2M的值?答:采用C/S模式,合约为普通文本,基于libevent机制处理的数据放在在记忆中;memcache最多只能存储1MB的数据。Memcache不是为存储大数据而生的,但是可以考虑将值压缩或者拆分成多个值然后赋值给多个key再存储!14.什么是队列?独占锁,如何解决Myisam死锁?答:默认情况下,MYisam是表级锁,所以同时操作单个表的多个动作只能在一个队列中执行;排他锁,也称为写锁,是在SQL执行过程中为排除其他请求而写的锁,执行完成后会自动释放;死锁解决方法:先找到死锁的线程号,然后kill线程ID15,请问mysql常用的存储引擎是什么?内存存储引擎有什么特点?答:Myisam、InnoDB、内存、内存的特点是表存放在内存中,数据快,重启后数据会丢失!16、5000多条数据如何最快插入?答:先生成数据文件,用sql语句导入。17.你用过多少个开源框架?答:TP/CI/ZF/YII18和ecshop的购物车信息存放在哪里?答:order_info;定货;order_action;19、PHP生成页面缓存的原理答:将缓存的内容放入OB缓存,OB缓存结束或脚本执行完毕后放入程序缓存,返回!20、你知道的缓存技术有哪些?下面分别简单介绍一下。答:ob缓存,通过模板技术写入文件缓存;内存缓存;重新分配;redis和memcache最显着的区别是数据不仅保存在内存中,还会在磁盘中生成文件,即使重启也可以加载数据;21、HTTP协议的原理,什么是全双工,什么是半双工?答:HTTP协议是无状态协议,直接说白了就是请求和响应。全双工表示请求和响应同时执行,半双工表示单次执行;22、ucenter通信的原理?答:应用登录后,后台轮询发送给同步登录应用的回调文件。回调文件收到用户ID后,生成cookie或session,然后进入登录模式。程序模式运行在一台或多台服务器中,等待接收客户端的连接操作,客户端可用各种语言(如PHP)编写。PHP等客户端与memcached服务建立连接后,接下来就是访问对象了。每个被访问的对象都有一个唯一的标识key,访问操作都是通过这个key进行的,并保存到memcached中。memcached中的对象实际上是放在内存中的,而不是放在缓存文件中的,这就是memcached可以如此高效快速的原因。24.你用过几个JS框架?用例子说明优缺点答:jQuery、prototype、dojo、ext、YUI;jQuery:强大的DOM节点查询无人能及,动画操作简单;DOM包很好!高低版本兼容性很好。prototype:较早的jS库,对ajax的支持较好,基于原型链,面向对象非常强大类库提供了很多方法;25、如何衡量AJAX的使用(何时使用AJAX)答:AJAX称为无刷新技术,常见使用场景:表单验证、用户评分、点击;只要需要与服务器进行实时交互即可26、什么是推送技术,其实现原理是什么?答:Push技术也叫COMET,意思是当客户端请求时,服务端挂起一个长连接。一旦服务器有新数据,它立即响应回服务器。客户端,实时性好;27、什么是垂直搜索,Sphinx中的分词原理?答:垂直搜索是指在特定范围内搜索上下文,搜索面只会越来越细,不会越来越广;sphinx分词原理:从数据源的每个文档中将文本拆分成多个词在对象上创建索引,并将索引表存储在内存中!28、不能在sphinx中使用的ha_sphinx.so有什么用?答:一个sphinx存储模块;29.PHP常用的合并数组的方式?答:array_mergn;array_mergn_递归;30、回答PHP读取文件快,还是读取mysql数据快?为什么?答:一般来说,读文件>读数据库;不同情况下速度会相反,比如:数据库数据量小,但同一目录下文件多时,读取数据库大于读取文件;
