ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

小刘的PHP碰到的坑

2021-07-06 10:57:52  阅读:191  来源: 互联网

标签:碰到 HTTP 18 api 3.5 3.0 PHP 2.5


php基础)
1、陌陌在20170201 ~ 20170209举行了签到活动,参加活动用户的userid为 1 ~ 10000000,由于签到接口的请求量过大,现决定签到时10%的概率分享一条留言板。
ua格式为Momo/1.1.1 Android/1132 (SM901; Android 6.0.1; Gapps 0; zh_CN; 1; smartisan

1)如何通过php判断20170201 ~ 20170209这个时间段?

2)如何通过php进行概率控制?
rand mt_rand()
3)现决定签到时Android的用户会分享一条留言板。如何通过php判断是否为Android用户发起请求?
$_SERVER[‘HTTP_USER_AGENT’]

(linux)
2、现在有一份陌陌的nginx access日志,文件名为 nginx-20170222.log。


[22/Feb/2017-18:51:58] api.momo.com /api/feed HTTP/1.1 121.0.0.1 android1.2
[22/Feb/2017-18:51:59] api.momo.com /api/follow HTTP/1.1 121.0.0.2 iphone1.1
[22/Feb/2017-18:52:58] api.momo.com /api/user HTTP/1.1 121.0.0.3 iphone1.1
[22/Feb/2017-18:52:41] api.momo.com /api/feed HTTP/1.1 121.0.0.4 android1.2
[22/Feb/2017-18:56:30] api.momo.com /api/follow HTTP/1.1 121.0.0.2 android1.2
[22/Feb/2017-18:51:21] api.momo.com /api/user HTTP/1.1 121.0.0.3 iphone1.1
[22/Feb/2017-18:59:58] api.momo.com /api/user HTTP/1.1 121.0.0.3 android1.2
[22/Feb/2017-18:51:21] api.momo.com /api/feed HTTP/1.1 121.0.0.1 iphone1.1

备注:分隔符为空格

1)请使用linux命令找出18点的所有日志
sed -n ‘/2015-08-14 09:00:00/,/2015-08-14 11:00:00/p’ access.log
2)请使用linux命令找出该文件在服务器上的存储路径
pwd find whereis
3)请使用linux命令找出该文件中请求量最高的3个ip

cat access.log|awk -F" " ‘{print $2}’|sort|uniq -c|sort -nrt " “|awk -F” " ‘{print $2}’|head -10

4)请使用linux命令找出使用该文件的进程id
ps -aux|grep ‘xxx’
ps -ef|grep ‘xxx’
ps -A|grep ‘xxx’
5)服务器内存下降很快,如何定位到原因
top
(db)

3、现发现一ip在大量访问陌陌签到接口。
如封禁策略为一自然分钟内请求签到接口500次则封禁该ip10分钟,如何操作?
redis 控制

(缓存)

4、陌陌签到活动的接口请求量非常大,需要使用缓存来缓解db压力。
请列出所有使用过的缓存机制,并简单介绍每个缓存的生命周期。

(算法)

5、现在服务器资源有点紧张,提供给签到活动用来记录 “是否签到过” 的内存只有10M,参加活动用户的userid为 1 ~ 10000000。
请设计合理解决方案
(综合)

6、如何计算一个服务的平均耗时,根据自己实践经验,如何将一个接口的平均耗时降低50%。

(综合)

7、日请求上亿的接口,简要描述下如何做到高可用。

(综合)

8、服务器负载报警, 如何快速定位到问题。

(原理)

9、cgi、apache_mod、fastcgi有什么区别?

(安全)
10、请简述php hash冲突***原理

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

一、PHP基础

基础部分

[2.0] 基本语法、日期操作函数、数组操作函数、字符串操作函数等。

[3.5] 比较了解PHP运行机制、扩展机制、常见操作的底层实现原理等。

SESSION

[2.5] 默认Session使用方法与作用。

[3.0] Session与COOKIE的联系(SESSIONID)。

[3.5] Session在集群中的使用方法及自定义实现方法。

[4.0] Session防劫持、高可用等方面的思考。

OOP相关

[2.5] public\protected\private的区别

[3.0] Abstract Class、Interface的区别

[3.0] 各个魔术方法

[3.0] exception的使用方法

[3.5] 常用设计模式

错误处理

[2.5] 错误级别(Notice、Warning、Error)。

[3.0] 触发Error错误的常见操作。

[3.0] 自定义错误处理的方法。

PHP运维层面

[3.0] 常见的php.ini 参数。

[3.5] FPM的进程管理模式。

[3.5] PHP扩展编译、安装等管理方法。

[3.5] 十分熟悉xhprof或比其更好的性能分析工具。

其他

[2.5] 正确的多字节字符截取方法。

[3.0] 类的自动加载方法。

[3.0] MVC分层实现方式等。

二、服务器相关

LINUX

[2.5] 熟练使用tail、less等。

[3.0] 熟练使用grep、find、sed、awk等基本用法。

[3.5] 了解文件权限规则。

[3.5] 了解用户权限、用户管理、包管理、硬盘容量管理等。

NGINX

[3.0] 常见配置(server\location\rewrite)

[3.5] 负载均衡、反向代理等。

数据库相关

[3.0] 事务相关SQL语句执行方法。

[3.0] 常见的数据库设计、SQL优化方法。

[3.0] Memcache/Redis熟练使用一种,描述常用API。

[3.5] Memcache一致性Hash算法与应用细节/Redis持久化、运维层相关事宜。

三、必备基础理论

HTTP协议

[2.5] HTTP常见的请求类型及get、post间的区别。(说GET是明文,post不是明文的一律打到2.5)。

[2.5] HTTP常见的Header字段。

[3.0] HTTP协议中缓存控制策略。

[3.5] 非常了解HTTPS的逻辑。

[3.5] https only等安全问题。

[3.5] 了解HTTP2.0。

正则表达式

[2.5] 加号、问号、点、中括号等基本用途。

[3.0] 一些复杂的匹配以及匹配效率。

其他

[3.0] UTF编码与GBK的区别。

[3.5] Socket编程基本知识。

[3.5] Linux常见的系统调用。

关于面试评估表

上面的技术分数大家要谨慎填写。

[1分] 技术不合格。

[2分] 不能胜任对应岗位。

[2.5分] 及格,基本能胜任岗位。

[3分]中等偏上,完全胜任岗位。

[3.5分]优秀,中高级,需要让总监级别复试。

[4 分]卓越,高级,完美符合岗位要求,需要让总监级别复试。

[5分]完美,貌似只有理论的可能性。

 

标签:碰到,HTTP,18,api,3.5,3.0,PHP,2.5
来源: https://blog.51cto.com/u_15294355/2986918

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有