PHP开源社区
码龄4年
关注
提问 私信
  • 博客:27,584
    视频:3,789
    31,373
    总访问量
  • 85
    原创
  • 1,895,579
    排名
  • 79
    粉丝
  • 0
    铁粉

个人简介:公众号:PHP开源社区,领取大厂PHP面试题、实战资料

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2021-03-29
博客简介:

pipujopijhpo的博客

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得19次评论
  • 获得128次收藏
创作历程
  • 85篇
    2021年
成就勋章
TA的专栏
  • PHP
    28篇
  • PHP面试
    75篇
  • PHP架构
    83篇
兴趣领域 设置
  • 大数据
    mysqlredis
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

面试问你Redis持久化,懂?

我们都知道Redis是个内存数据库,所有的数据都存储在内存中。一旦服务器上Redis进程退出,数据库中的数据就会丢失 。持久化是做什么事呢? 持久化简单的理解就是将内存中的数据做个备份。Redis的持久化有两种方法,即RDB持久化和AOF持久化。 本文将会分两部分介绍这两种持久化方法,以及实现原理。一、RDB持久化Redis数据持久化是将内存中的数据保存到磁盘里,避免数据意外丢失。RDB持久化会生成一个RDB文件,这个RDB文件是一个经过压缩的二进制文件。通过该文件可以还原出Redis数据库中的数
原创
发布博客 2021.09.14 ·
175 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

新手Redis的分布式锁解析

在使用分布式锁进行互斥资源访问时候,我们很多方案是采用redis的实现。固然,redis的单节点锁在极端情况也是有问题的,假设你的业务允许偶尔的失效,使用单节点的redis锁方案就足够了,简单而且效率高。redis锁失效的情况:客户端1从master节点获取了锁master宕机了,存储锁的key还没来得及同步到slave节点上slave升级为master客户端2从新的master上获取到同一个资源的锁于是,客户端1和客户端2同事持有了同一个资源的锁,锁的安全性被打破。如果我们不考虑这种极
原创
发布博客 2021.09.10 ·
212 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL 慢查询是怎样优化的

为什么查询速度会慢1.慢是指一个查询的响应时间长。一个查询的过程:客户端发送一条查询给服务器服务器端先检查查询缓存,如果命中了缓存,则立可返回存储在缓存中的结果。否则进入下一个阶段服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划。MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询。将结果返回给客户端2.数据访问是否向数据库请求了不需要的数据是否扫描额外的记录3.查询的方式一个复杂的查询还是多个简单的查询切分查询(将大查询切分成小查询,循环完成小查
原创
发布博客 2021.09.08 ·
236 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

php-fpm - 启动参数及重要配置详解

约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的启动参数#测试php-fpm配置/usr/local/php/sbin/php-fpm -t/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t #启动p
原创
发布博客 2021.08.30 ·
526 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PHP观察者模式(Observer)解析与应用

【看一下观察者模式结构图】概念(Observer),首先要有一个被观察的角色,但ta是【唯一的】。虽然"表演者"只有一个但是"观众"有很多,既一群"人"围观一个"人"。既然有无数个观察者,那么我们需要知道都有哪一些"人"。所以我们需要一个“容器”来记录这些"人",一个类似于数组一样来储存所有观察者的容器。一个"演员"(被观察者),一群"观众"(观察者),一台"摄影机"(记录容器)【观察者模式中主要角色】抽象主题(Subject)角色:主题角色将所有对观察者对象的引用保存在一个集合中,每个主题可
原创
发布博客 2021.08.28 ·
289 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PHPer的20 道 shell 脚本面试题

想要成为中高级phper, shell 脚本是需要掌握的,它有助于你在工作环境中自动完成很多任务。如下是一些面试过程中,经常会遇到的 shell 脚本面试问题及解答:Q:1 Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。\Q:2 什么是默认登录shell,如何改变指定用户的登录shell答:在Linux操作系统,“
原创
发布博客 2021.08.27 ·
191 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PHP 核心特性 - 错误处理

错误与异常错误,可以理解程序本身的错误,例如语法错误。而异常则更偏向于程序运行不符合预期或者不符合正常流程;对于 PHP 语言而言,处理错误和处理异常使用的机制完全不同,因此很容易让人产生困惑。例如,我们希望通过捕获异常来处理除数为 0 的情况,但是在捕获到异常之前,PHP 就触发了错误。try { $a = 5 / 0;} catch (Exception $e) { $e->getMessage(); $a = -1; // 通过异常来处理 $a 为 0 的情况,
原创
发布博客 2021.08.26 ·
101 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

php队列的实现思路和过程

一:队列场景当我们使用某讯或者某浪的邮箱时,点击群发邮件之后,只需等待很短的时间,浏览器 提示提交成功,正在发送之类的信息时,用户就可以关掉浏览器,稍后,收件地址栏里的邮箱将陆续收到该群发邮件,再比如群发定时邮件,以及当商城系统中有客 户下单,客户,客服,仓库等相关人员收到订单邮件信息。诸如此类,队列的应用范围是如此之广。二:普通工程师的解决方案和架构师的解决方案方案1:建表存邮件,消息等,用定时程序取出发送。方案2:抽象到更高一层,开发一套通用异步处理队列适用于任何复杂的业务逻辑那么,作为架构师
原创
发布博客 2021.08.20 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

深入解析PHP7个预定义接口

场景:平常工作中写的都是业务模块,很少会去实现这样的接口,但是在框架里面用的倒是很多。1. Traversable(遍历)接口该接口不能被类直接实现,如果直接写了一个普通类实现了该遍历接口,是会直接报致命的错误,提示使用 Iterator(迭代器接口)或者 IteratorAggregate(聚合迭代器接口)来实现,这两个接口后面会介绍;所有通常情况下,我们只是会用来判断该类是否可以使用 foreach 来进行遍历;class Test implements Traversable {.
原创
发布博客 2021.08.17 ·
173 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

PHP多进程是怎样执行的

我们都知道PHP是单进程执行的,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,但PHP实现多进程也意义重大,尤其是在后台Cli模式下处理大量数据或运行后台DEMON守护进程时,多进程的优势不用多说。PHP的多线程也曾被人提及,但进程内多线程资源共享和分配的问题难以解决。PHP也有多线程想关的扩展 pthreads ,但据说不太稳定,且要求环境为线程安全,所用不多。追求高性能可用Swoole协程编程即可!要实现PHP的多进程,我们需要两个扩展 pcntl和 posix,安装方法
原创
发布博客 2021.08.16 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

解析PHP-FPM的一些心得

作用PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。(1). 为什么会出现php-fpmfpm的出现全部因为php-fastcgi出现。为了很好的管理php-fastcgi而实现的一个程序(2). 什么是php-fastcgiphp-fastcgi 只是一个cgi程序,只会解析php
原创
发布博客 2021.08.14 ·
196 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql索引命中规则

最左匹配原则1、先定位该sql的查询条件,有哪些,那些是等值的,那些是范围的条件。2、等值的条件去命中索引最左边的一个字段,然后依次从左往右命中,范围的放在最后。分析讲解1、mysql的索引分为聚簇索引和非聚簇索引,mysql的表是聚集索引组织表。聚集规则是:有主键则定义主键索引为聚集索引;没有主键则选第一个不允许为NULL的唯一索引;还没有就使用innodb的内置rowid为聚集索引。非聚集索引也称为二级索引,或者辅助索引。2、mysql的索引无论是聚集索引还是非聚集索引,都是B+树结构。聚
原创
发布博客 2021.08.13 ·
439 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Laravel生命周期与原理

一旦用户(浏览器)发送了一个HTTP请求,我们的apache或者nginx一般都转到index.php,因此,之后的一系列步骤都是从index.php开始的,我们先来看一看这个文件代码。<?phprequire __DIR__.'/../bootstrap/autoload.php';$app = require_once __DIR__.'/../bootstrap/app.php';/*|--------------------------------------------------
原创
发布博客 2021.08.07 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

让php7性能达到最高的5点小技巧

1. Opcache记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:zend_extension=opcache.soopcache.enable=1opcache.enable_cli=1"2. 使用新的编译器使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启
原创
发布博客 2021.08.05 ·
161 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PHP-FPM的面试题解析

面试官:说说你对PHP-FPM的理解1. CGI(Common Gateway Interface,CGI)通用网关接口, 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、Java、VB 和
原创
发布博客 2021.08.04 ·
519 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

php-parser在Aop编程中的使用

在laravel下使用php-parser实现aopcomposer require nikic/php-parserTest.php<?php/** * Created by PhpStorm. * User: CSH * Date: 2019/4/4 * Time: 11:26 */namespace app;/** * 为该类创建代理,并植入切面 埋点 * 使用parser生成对应的语法树,然后主动修改方法体内的逻辑 * * Class Test * @pa
原创
发布博客 2021.08.02 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

基于Nginx的负载均衡原理与实战

本文主要讲解以下3个方面介绍Nginx的负载均衡:负载均衡介绍Nginx如何实现负载均衡Nginx负载均衡配置项介绍\01负载均衡介绍什么是负载均衡? 顾名思义就是让客户端的请求均匀地分布到各个服务器上。从下图可以看出,客户端的请求先到达负载均衡器,由负载均衡器通过一系列算法将请求转发到某台上游的业务服务器上。实现负载均衡的方式有很多,下面将列出几种方式,并对比优劣:硬件层面可以通过F5实现负载均衡,性能优异。F5的底层是在芯片层面做了优化,这样就使得它的性能不依赖主机操作系统的处理
原创
发布博客 2021.07.30 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis实现分布式锁与任务队列的思路

一、正文大家都知道在天猫、京东、苏宁等等电商网站上有很多秒杀活动,例如在某一个时刻抢购一个原价1999现在秒杀价只要999的手机时,会迎来一个用户请求的高峰期,会有几十万几百万的并发量,来抢这个手机,在高并发的情形下会对数据库服务器或者是文件服务器应用服务器造成巨大的压力,严重时说不定就宕机了。另一个问题是,秒杀的东西都是有量的,例如一款手机只有10台的量秒杀,那么,在高并发的情况下,成千上万条数据更新数据库(例如10台的量被人抢一台就会在数据集某些记录下 减1),那次这个时候的先后顺序是很乱的,很容易
原创
发布博客 2021.07.27 ·
462 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis 缓存锁的实现方法

1. redis加锁分类redis能用的的加锁命令分表是INCR、SETNX、SET2. 第一种锁命令INCR这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。然后其它用户在执行 INCR 操作进行加一时,如果返回的数大于 1 ,说明这个锁正在被使用当中。 2、 客户端B也去请求服务器获取key的值为2表示获取锁失败 3、 客户端A执行代码完成,删除锁 4、 客户端B在等待一段时间后在去请求的时候获取key的值为1
原创
发布博客 2021.07.14 ·
593 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

基于redis的分布式锁解析

在使用分布式锁进行互斥资源访问时候,我们很多方案是采用redis的实现。固然,redis的单节点锁在极端情况也是有问题的,假设你的业务允许偶尔的失效,使用单节点的redis锁方案就足够了,简单而且效率高。redis锁失效的情况:客户端1从master节点获取了锁master宕机了,存储锁的key还没来得及同步到slave节点上slave升级为master客户端2从新的master上获取到同一个资源的锁于是,客户端1和客户端2同事持有了同一个资源的锁,锁的安全性被打破。如果我们不考虑这种极端情
原创
发布博客 2021.07.13 ·
92 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多