总结一些面试的问题

1、redis是单线程还是多线程?

redis是单线程的,memcached使用的是多线程

http://blog.jobbole.com/100079/

2 、redis数据类型?set集合的大小?list中BLPOP和LPOP的区别?

string list hash set 有序set

scard key

BLPOP 是列表的阻塞式(blocking)弹出原语。

它是 LPOP 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。

3、yaf的本地类和全局类

全局类是指, 所有产品之间共享的类, 这些类库的路径是通过ap.library在php.ini(当然,如果PHP在编译的时候, 支持了with-config-file-scan-dir,那么也可以写在单独的ap.ini中)

而本地类是指, 产品自身的类库, 这些类库的路径是通过在产品的配置文件中, 通过ap.library配置的.

在Yaf中, 通过调用Yaf_Loader的registerLocalNamespace方法, 来申明那些类前缀是本地类, 即可.

http://www.laruence.com/manual/yaf.autoloader.html#yaf.autoloader.library

4、php7新特性?

标量类型声明

返回值类型声明

null合并符

太空船操作符

define 定义常量数组

匿名类

http://php.net/manual/zh/migration70.new-features.php

5、php魔术方法

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep()__wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 

http://php.net/manual/zh/language.oop5.magic.php#object.invoke

6、php的unset会释放内存吗?
别怀疑,PHP的unset确实会释放内存(当然, 还要结合引用和计数, 这部分的内容请参看我之前的文章深入理解PHP原理之变量分离/引用), 但这个释放不是C编程意义上的释放, 不是交回给OS.而会把这块内存, 归入自己维护的空闲内存列表. 而对于小块内存来说, 更可能的是, 把它放到内存缓存列表中去(后记, 某些版本的PHP, 比如我验证过的PHP5.2.4, 5.2.6, 5.2.8, 在调用get_memory_usage()的时候, 不会减去内存缓存列表中的可用内存块大小, 导致看起来, unset以后内存不变, 见评论).

http://www.laruence.com/2011/03/04/1894.html

7、如何防止对外的公共接口被刷(如短信接口)?

(1)增加图形验证
(2)单IP请求次数限制
(3)限制号码发送

https://zhuanlan.zhihu.com/p/20879468

 

posted @ 2017-02-15 20:10  狄磊  阅读(196)  评论(0编辑  收藏  举报