微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP备战面试知识参考(备忘)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011415782/article/details/79497787
★ 前言
如果你是一个已经拥有 3-5年开发经验的PHPer了,那么所需要的技能掌握就格外重要,理论上讲应向着管理层方向迈进,同事所掌握的知识点就不能仅仅在于代码上了
下面,只是我在面试中着重整理的重要点,仅供参考…
数据库
数据库知识包含面比较广,涉及到 常用的 MysqL,Nosql,Redis,Memcache 等

♘① MysqL 知识点
MysqL 性能调优的10个方法
MysqL 大表优化方案
将IP以整型的形式存储到数据库
MyISAM和InnoDB的主要区别和应用场景
MysqL联合索引
关于IP在MysqL中的存储 || 论IP地址在数据库中应该用何种形式存储
记住:永远不要在MysqL中使用"utf8",请使用"utf8mb4"

♘② nosql
Redis和Memcache的区别分析
天下无难试之Redis面试刁难大全
对Memcached使用的总结和使用场景
用Redis实现分布式锁 与 实现任务队列
【是否使用过Redis集群,集群的原理是什么?】

Redis Sentinal 着眼于高可用,在m aster 宕机时会自动将 slave 提升为master,继续提供服务。
Redis Cluster 着眼于扩展性,在单个 redis 内存不足时,使用 Cluster 进行分片存储
★ 秒杀系统
秒杀系统架构分析与实战
如何设计一个秒杀系统
①. 秒杀系统设计中的业务性思考


秒杀系统只允许接受同一个账户的1个请求,其他请求统统过滤掉。在程序入口加锁,同一个账户,同一时刻只有一个线程在被处理。不仅解决了同一个账号,发送多个请求的问题,还保证了后续的逻辑流程的安全,确保了只有一个线程能更新账户的状态。

②.谈谈秒杀系统的落地方案


秒杀系统要解决的技术挑战
短时间内的超高访问量对后台服务的冲击。秒杀期间,来自外部请求产生的QPS会是平时的10~100倍。
数据库的读写压力陡增。大量的并发写,会造成数据库的行锁处于无法释放的状态,大量的线程排队进而造成服务请求超时失败。
网络带宽资源会因为秒杀被大量占据掉。假设秒杀页面的大小为150K,如果最大并发连接数为20000,那么应用服务器至少需要支持的带宽>3G。
③.秒杀系统设计中的数据处理


通过CDN,把大量静态不需要检验的数据放在系统之外的地方;减少不必要的流量到服务器端。
预加载用户静态信息,在前端读系统中检验一些基本信息,如用户是否具有秒杀资格、商品状态是否正常、秒杀是否已经结束等;过滤大量无效请求。
在写数据系统中再校验一些如是否是非法请求,写的数据一致性如检查库存是否充足等;
最后在数据库层保证数据最终准确性,避免超卖。
♘ 算法
杨辉三角
无限级函数
♘ 内置函数介绍
array_merge() 和 array+array 的区别
array_merge()函数用于将一个或者多个数组的单元合并起来,返回结果为数组。
//①如果合并的数组中有相同的字符串键名,则后面的值覆盖前面的值,键名不变
//②如果合并的数组中有相同的数字键名,则后面的值不覆盖前面的值,而是依次附加到后面
//③如果只有一个数组,并且该数组是数字索引的,则键名会以连续方式重新索引。

array+array是数组的联合运算
//①如果合并的数组中有相同的字符串键名,则取最先出现的值而把后面拥有相同键名的那些值“抛弃”
//②如果合并的数组中有相同的数字键名,则取最先出现的值而把后面拥有相同键名的那些值“抛弃”
//③如果只有一个数组,并且该数组是数字索引的,则键名会以连续方式重新索引。
1
2
3
4
5
6
7
8
9
♘ 减少资源浪费
滚动加载图片(懒加载)实现原理
PHP页面静态化实现思路
♘ 正则表达式
IP地址的正则表达式写法
♘ JWT
JWT 超详细分析
 ———————————————— 
版权声明:本文为CSDN博主「moTzxx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011415782/article/details/79497787

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐