一、php-fpm是什么?有什么作用?
介绍:PHP-FPM,全称 FastCGI 进程管理器,属于 PHP 的一个组件,主要功能是增强 PHP 在网络服务器环境中的表现力。
作用:
进程维护:能够使多个 PHP 运行实例驻留在内存之中,依据工作负荷情况,灵活增减 PHP 的子实例数目
具有卓越的处理能力:借助 FastCGI 机制与网络服务器进行交互,其效能远超常规的 CGI 方法
资源管理:设定 PHP 任务内存消耗上限,管理单个时段内可处理的请求量
支持各类用户或群体独立执行 PHP 程序,允许为各个站点分别设定专属的 PHP 处理单元,可依据需求灵活调整配置方案
PHP-FPM 一般与 Nginx 组合部署,由于 Nginx 并不直接处理 PHP,而能与其他支持 FastCGI 的 Web 服务器,例如 Apache,协同工作。PHP-FPM 现在是现代 PHP 应用部署的核心构成部分,尤其适用于高访问量的网站和应用程序。
二、redis 实现持久化的方式及原理、特点
Redis利用内存快照的核心机制,采用两种关键的数据保存手段,以此保障服务器重启时信息不会遗失。
1. RDB (Redis Database) 持久化
操作方法:首先创建内存信息的即时记录,然后把特定时刻的所有信息完整保存到二进制文档中,该文档的固定名称是dump.rdb
操作方法为手动发出`SAVE`指令(程序会暂停)或使用`BGSAVE`指令(在后台执行保存),同时可在设定文件里设定自动保存的规则(例如`save 900 1`意味着每900秒至少有一个键值发生改动)
长处在于运行效率出色,由于采用二进制数据格式,数据恢复的速度很快,同时它也便于应对突发状况,因为单个文件即可完成备份操作,并且能够充分提升Redis的运作效能,原因是其父进程无需承担其他额外任务
不足之处在于,或许会遗失上一次备份所记录的信息,当资料库规模庞大之际,通过复制进程的方式或许会引发服务运行迟滞
2. AOF (Append Only File) 持久化
操作时将所有写入指令按照Redis的通信格式追加至文件中,系统重新启动后需重新执行文件里的指令来恢复数据
设置项包括:`追加文件系统同步始终`,即每次操作都写入磁盘,这种方式最为稳妥但速度较慢;`追加文件系统每秒同步`,每秒钟进行一次数据同步,是兼顾安全与效率的常用方法;`追加文件系统不强制同步`,让操作系统自行判断同步时机,速度最快但风险最高。
长处在于资料保障程度强,最多会遗失一秒的信息,AOF文档比较简单明了,能够自行应对AOF文档体积过大的状况,具备重写功能
文件体积往往超过RDB,恢复过程通常更耗时,性能受其制约的情况也比RDB严重
三、mysql主从复制原理及模式
基本原理:
主库更新所有数据变动都会存入二进制日志文件
从从库那里,经由I/O线程,获取主库传送来的binlog
3. 从库的SQL线程重放这些日志事件,实现数据同步
有三种主要复制模式:
数据备份有三种主要方式,分别是异步备份、半同步备份以及全同步备份,这三种方式在数据保持程度、运行效率和应用环境方面各有差异。
四、redis缓存击穿,缓存雪崩问题
1.缓存击穿(热点key失效)
问题:单个热点key过期,突发高并发直接访问数据库

解决:永不过期 + 异步更新 或 加互斥锁重建缓存
2.缓存雪崩(大规模失效)
问题:大量key同时失效/Redis宕机,数据库压力激增
解决:随机过期时间 + 多级缓存 + 熔断降级
3.缓存穿透(查询不存在数据)
问题:恶意查询不存在的数据,绕过缓存攻击数据库
解决:布隆过滤器拦截 + 缓存空值(带短过期时间)
五、http状态码
1、状态码分类
2、常用状态码
六、mysql存储引擎innoDB与MyISAM的区别
InnoDB(作为系统首选的存储引擎):具备处理事务的能力,采用行级别的锁机制,同时兼容外键功能,其优势在于支持多版本并发控制以及拥有完善的故障恢复机制。
MyISAM体系不兼容数据完整性维护机制,采用全局锁定策略处理数据操作,无法运用关联字段,其优势体现于文本内容检索能力增强,能够执行数据压缩存储,并且统计信息获取效率较高
索引类型:
哈希索引能够高效完成精确查找,但无法进行排序操作,也不适用于检索特定范围内的数据,当出现哈希碰撞时,必须逐个检查链表元素(php数组与redis zset的构建方式相似)
B树和B+树的主要不同在于,前者数据存储在节点中,后者仅将键值存于节点,数据则全部放在叶子节点,并且叶子节点间形成链表,便于顺序访问,同时内部节点作为索引,指向数据所在区间,而B+树的所有数据记录都存储在叶子节点,非叶子节点仅负责索引功能,通过指针连接各个叶子节点,形成有序链表,提高了范围查询的效率,B树在搜索时可能需要访问多个节点,而B+树由于数据集中存储,通常能减少访问次数,提升性能表现
B树的所有数据都保存在末端节点里,中间节点仅存放键值,单次磁盘访问能够取得更多的节点信息
B树的内节点与叶节点均存放键值和内容,检索信息无需抵达叶节点,内节点即可直接提供数据
b树增设了叶节点指向邻近节点的连接,有助于实现检索过程的回溯
3.聚簇索引和非聚簇索引
聚簇索引将索引和数据保存在同一个位置,非聚簇索引则将索引和数据分开存放,需要借助索引去定位数据实际存放的地址
详解:
InnoDB采用聚集式索引,系统预设主键索引即为此种索引类型(若无主键索引,则从非空索引中选取一个,若仍无,则自动生成隐式主键索引),其他辅助索引会定位到聚集式索引的位置,最终据此获取数据实际存放位置
Myisam 采用非聚集式索引方式,每个索引仅需检索一次即可定位数据
聚簇索引的优势和略势
索引和数据并置,同页信息会被暂存于缓冲区,因此检索相同页面的资料时,仅需从该区域调取即可
数据更新完成之后,只需要照管主键索引,辅助索引不会发生变化
辅助索引记录的是主键索引的数据,需要占用更大的存储容量,因此容易受到干扰
采用无序的标识符,记录的存放位置杂乱无章,造成索引查询时或许需要检查整张数据表,从而影响性能,因此最好选用顺序递增的编号作为核心字段

CopyrightC 2009-2025 All Rights Reserved 版权所有 芜湖人才网 本站内容仅供参考,不承担因使用信息、外部链接或服务中断导致的任何直接或间接责任,风险自担。如有侵权,请联系删除,联系邮箱:ysznh@foxmail.com 鄂ICP备2025097818号-15
地址: EMAIL:qlwl@foxmail.com
Powered by PHPYun.