当前位置: 网学 > 编程文档 > PHP > 正文

php牛逼的面试题分享

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/18
将threads和posts 一对多关联起来
现在数据量posts表达到了1亿, threads表2000万, 大约一个主题有5篇回复
请你设计一下分表, 将posts表和threads表进行mysql分表

5. 现在有一个mysql 主库/丛库, 请问php mysql查询的时候怎么在php程序中实现主从分离? 主从分离有什么好处配置主从数组文件,自己封转几个model函数,查询的加载slave配置实例化,破坏数据的操作加载master进行实例化优点:并发负载能力提高,利于数据维护和安全,提高可用性缺点:数据同步有些延迟

6. 简述UCenter的单点登录机制
所谓单点登录,无非就是几个站点共用一个用户中心,实现同步登陆,同步退出。

其实最终还是用户去登录,只是采用了ajax (javascript利用src异步跨域调用)用户不会发现。

而且利用了p3p头实现了,不同域名,单点登录(ucenter用的cookie)

缺点就是采用ajax 客服端请求 ,如果有10个以上应用,登录速度就慢下来了。


7. linux相关 有一个包 http://www.120.net/test-1.0.0.tar.gz
a. 将它下载到/usr/local/src
b. 将其源码编译安装到/usr/local/test 目录
c. 他依赖mysql包, 位于/usr/local/mysql 目录
写出下载编译安装过程

wget - c http://www.120.net/test-1.0.0.tar.gz/usr/local/srctar zxvf /usr/local/src/test-1.0.0.tar.gzcd /usr/local/src/test-1.0.0./configure --prefix=/usr/local/test --exec--prefix=/usr/local/mysqlmake testmake install

8. 使用php 的memcache扩展编写一个获取数据的函数(缓存即将过期超时加锁)
a. 数据超时之后去mysql获取, 获取完后更新memcache
b. 去mysql获取数据的时候加锁, 让一个进程去mysql拉数据, 其他人返回memcache中的数据

public function get_cache($key) { if($this->memcahe) { $var = $this->memcahe->get($this->pre.$key); $valid = $this->memcahe->get($this->pre.$key.''_valid''); if($var && !$valid) { $lock = $this->memcahe->get($this->pre.$key.''_lock''); if(!$lock) { $this->memcahe->set($this->pre.$key.''_lock'', true, 0, 60); return false; } } return $var; } return false; }
public function set_cache($key, $var = null, $expire = 0) { if($this->memcahe) { $expire = (int)$expire; $expire = ($expire ? $expire : $this->expire); $this->memcahe->set($this->pre.$key, $var, 0, $expire+300); $this->memcahe->set($this->pre.$key.''_lock'', false, 0, $expire); $this->memcahe->set($this->pre.$key.''_valid'', true, 0, $expire); return true; } return false; }

9. 简述队列, 堆栈的原理


都可以看做是一维数组来操作,队列先进先出,出列只能在列头,进列只能在列尾,堆栈是后进先出,进栈和出栈都是从栈顶


堆栈的工作原理是什么?


堆栈是一种抽象数据结构,其操作机理是后进先出。当你把新条目推进堆栈时,已经在堆栈内的任何条目都会压到堆栈的深处。同样的,把一个条目从堆栈移出则会让堆栈内的其他条目都向堆栈的顶部移动。只有堆栈最顶端的条目能从堆栈中取出,条目离开堆栈的顺序和它们被推进堆栈的顺序一样。你不妨回想下自动售货机的装货和取货过程就明白了。
10. arrayaccess 定义如下 用它实现一个数组
ArrayAccess {
/* Methods */
abstract public boolean offsetExists ( string $offset )
abstract public mixed offsetGet ( string $offset )
abstract public void offsetSet ( string $offset , string $value )
abstract public void offsetUnset ( string $offset )
}
class Single implements ArrayAccess{ private $name; private static $

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号