![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
dj1540225203
加油打工人
展开
-
nginx平滑重启和php-fpm平滑重启
2.重启命令执行前,先查询php-fpm.pid找到对应的php版本的master进程pid。http://nginx、php-fpm平滑重启和重载配置。原创 2024-08-07 10:40:29 · 165 阅读 · 0 评论 -
fastadmin配合定时任务
一个系统单纯到linux本身的定时任务,是很不方便的,需要结合起来使用。2.配置宝塔定时任务。原创 2024-06-21 15:39:34 · 465 阅读 · 0 评论 -
fastadmin中$searchFields解析
查询sql拼接就会自携带;原创 2024-06-20 14:33:38 · 196 阅读 · 0 评论 -
mac部署fastadmin踩坑记录
粘贴一下解决配置,主要Nginx配置问题。原创 2023-06-27 22:26:05 · 412 阅读 · 0 评论 -
mysql设置为字段类型text够稳吗?
mysql字段类型中,有text也有longtext为啥?想想就知道了,肯定有不够存的时候!当一个一直稳定运行的功能,突然不行时,竟然发现是数据库表自动截断存了,还没有报错!方案:要不rule限制!方案:要不改为longtext。原创 2023-01-31 16:27:44 · 249 阅读 · 0 评论 -
http不够?还要grpc等?
好处在这里就举几个例子:比如不同部门之间的交互,一个部门是java,一个部门是php,他们需要对接一个订单系统,这样的话,java就可以把对接这块单独开发,然后做成一个jar,最后在原项目中引入即可,这样类似于动态加载的内容包不会太大;而且grpc还可以接入配置中心!其实http在小型系统中已经足够,但是grpc是为了更加高级的交互而提供的,性能方便grpc做的好会更高一点,毕竟属于传输层协议。原创 2023-01-20 16:02:09 · 152 阅读 · 0 评论 -
广州正佳小程序优化预测
方案3:nginx使用了接口代理,把单独抢券的那个接口临时代理到一台新的临时服务器和应该也增加了临时只读数据库,分解压力,其他服务不受影响。广州正佳最近在搞一个活动,就是发福利,但是因为技术原因,导致了系统出现了很多问题,引起了很多吐槽,在此笔者仅从技术的角度分析一波。起因:发券18抢100,这个羊毛(*^▽^*),你懂的引起了轩然大波,疯抢,这块就涉及到高并发了。经过:大伙集体薅羊毛,导致服务器504,502,库存超卖,各种报错,并且其他服务不可用。最后,看到服务还算稳定,最主要的是我白嫖到了,哈哈。原创 2023-01-17 10:48:32 · 78 阅读 · 0 评论 -
浅析如何避免CPU飙高?还出现502了
当然CPU飙高的原因很多,任务多,处理时间久,线程不够等,我们也可以根据top中sleeping进程数调高初始进程,或者业务上分离等。思考一个场景,您这边需要根据你库中的一个表,持续的去抓取第三方接口数据然后更新入库你会如何处理?而且使用分页的方式任务更多但CPU反而更小!原创 2023-01-17 10:21:08 · 104 阅读 · 0 评论 -
PHP中用curl判断url是否有效
curl原创 2022-12-15 10:26:03 · 887 阅读 · 0 评论 -
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found原创 2022-12-09 15:11:30 · 2856 阅读 · 0 评论 -
在PhpStorm中hyperf调试的方法步骤是什么
hyperf原创 2022-08-27 15:12:41 · 1568 阅读 · 0 评论 -
composer的原理和正确使用(最新)
composer原创 2022-08-22 10:49:24 · 889 阅读 · 0 评论 -
redis 规范命名 批量删除key
redis原创 2022-08-05 13:52:13 · 369 阅读 · 0 评论 -
关于Yii2批量更新的操作
批量更新原创 2022-08-03 11:27:09 · 2299 阅读 · 0 评论 -
php链路日志方案
php链路日志原创 2022-07-23 22:38:57 · 518 阅读 · 0 评论 -
封装微信支付宝脱敏
脱敏原创 2022-07-19 10:39:11 · 531 阅读 · 0 评论 -
redis那些事儿
redis原创 2022-07-02 23:47:03 · 115 阅读 · 0 评论 -
php服务器 与redis交互大量CLOSE_WAIT分析
redis原创 2022-07-02 23:36:28 · 852 阅读 · 0 评论 -
php如何解决高并发问题
高并发原创 2022-07-02 12:14:07 · 2170 阅读 · 0 评论 -
高并发下接口幂等性如何保证?
接口幂等性原创 2022-06-29 22:24:35 · 149 阅读 · 0 评论 -
Yii2 配置主从库,主从切换
mysql原创 2022-06-16 14:50:26 · 522 阅读 · 0 评论 -
redis 如何保证接口幂等性?
redis 保证幂等性原创 2022-06-16 13:55:37 · 212 阅读 · 1 评论 -
redis结合lua脚本限流
限流原创 2022-06-15 15:28:35 · 591 阅读 · 0 评论 -
docker部署解决“三高“问题
docker容器化部署方案?原创 2022-06-09 11:33:28 · 294 阅读 · 0 评论 -
【分库分表三部曲精华】
分库分表原创 2022-06-09 00:36:00 · 167 阅读 · 0 评论 -
PHP Warning ‘yii\base\ErrorException‘ with message ‘count(): Parameter must be an array or an object
大伙都知道命令行执行时很严格的,但凡有点小警告也会导致执行出问题。这不刚说完,在本地开发环境执行发现了一个报错。其实这个是yii底层没有更新,对php版本兼容的问题,改下下面就好了其他框架也一样的解决方案...原创 2022-05-27 15:55:23 · 1197 阅读 · 0 评论 -
api如何实现版本控制?
常言道,常在马路走哪有不湿鞋?在牛逼的业务也有可能因为一个小bug,导致系统全盘奔溃,如果没有对策应对这些问题?项目何谈健壮?git代码尚且有版本控制,项目没有版本控制确实不妥,曾经天真的因为只要一直迭代迭代,修复修复就好了,但是如果一个bug很难找出来的时候,修复时间未知的时候,如果是金融项目拜拜了,就算不是金融的系统奔溃那么久是不是被boss爆菊花了?由此可见接口必须有版本控制。单体项目方案:①通过前端强制所有接口必须携带head参数中规定版本参数,服务端必须校验参数!Restful接口的版原创 2022-05-20 15:40:40 · 324 阅读 · 0 评论 -
php中 new self()和new static() 区别
曾几何时,看着顺眼就用,没有思考过里面的差异,后面有个产景使用到了才思考了起来,用不好问题很严重的!参考:new self() 和 new static() 的区别_Yee Jason的博客-CSDN博客_new static他们的区别只有在继承中才能体现出来、如果没有任何继承、那么二者没有任何区别;然后 new self() 返回的实列是不会变的,无论谁去调用,都返回的一个类的实列,而 new static则是由调用者决定的。如果一个项目中,要求根据不同商户获取其唯一的配置实例,而你又不原创 2022-05-12 17:40:51 · 392 阅读 · 0 评论 -
php 脱敏技术
曾几何时有个脱敏需求,对用户名称进行脱敏处理,使用了如下代码if($list[$i]['nickname']){ if (ord($list[$i]['nickname'])>128){ $list[$i]['nickname'] = mb_convert_encoding(substr_replace(substr_replace($list[$i]['nickname'],'*',3,3),'*',4,3), 'UTF-原创 2022-05-12 09:50:09 · 899 阅读 · 0 评论 -
linux查找日志cat ,less命令
基本使用:切换到对应的文件使用命令cat app.log|grep '发货成功'如果是大文件,可以使用,多个|是且的意思less app.log | grep '发货成功' | grep '不存在'原创 2022-04-21 11:33:28 · 597 阅读 · 0 评论 -
composer正确使用姿势?
在未熟悉composer各种命令之前,建议看官方文档或者菜鸟教程学习一下,理一下里面的逻辑!下面所讲的内容,都是假设你已经了解了基本的composer命令的使用了。在git分支管理下使用方便代码管理。问题一:如果不正确使用composer可能导致生产代码造成不可逆的bug!搞的你晕头转向问题二:代码如果未在git仓库进行管理之前,直接composer包,可能会造成开发和生产服务器代码大概率不一致,背锅问题三:建议单个包下载或者更新、升级、降级!非常重要基本使用:阿里云compo原创 2022-04-13 15:06:55 · 178 阅读 · 0 评论 -
OAuth 2.0 是啥?
OAuth 2.0是一种认证授权机制。用来授权第三方应用,获取用户数据。场景的使用场景比如小程序服务商开发、支付宝小程序服务器开发等第三方平台的开发。原理解释:一、快递员问题我住在一个大型的居民小区。小区有门禁系统。进入的时候需要输入密码。我经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通过门禁系统,进入小区。如果我把自己的密码,告诉快递员,他就拥有了与我同样的权限,这样好像不太合适。万一我想取消他进入小区的权力,也很麻烦,我自己的密码也得..原创 2022-03-24 17:09:28 · 379 阅读 · 0 评论 -
支付宝SDK对接
支付宝的sdk和官方文档,有一说一比微信的做的好,主要是还可以本地调试支付宝的接口。但是要求php版本7.1以上。比如:调试支付宝图片上传接口。切换7.1版本以上就好了!总的来说支付宝文档还是比较友好的...原创 2022-03-21 09:50:34 · 386 阅读 · 0 评论 -
php 开发规范
PHP开发规范 | 菜鸟教程php代码规范_haif_city的博客-CSDN博客PSR-1 基础编码规范 | 全部规范 |《PHP PSR 标准规范》| PHP 技术论坛原创 2022-03-11 13:40:17 · 89 阅读 · 0 评论 -
yii2 记录所有执行的sql日志到文件
通过web页面入口操作的的都可以记录'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'enabled' => env('LOG_ENABLED', true), 'levels' => env('LOG_LEVELS',原创 2022-02-22 10:18:09 · 901 阅读 · 0 评论 -
php curl
php 一般使用curl拓展类库处理即可远程访问,比如guzzle等等好用的类库。基本都是封装的curl调试函数:curl_getinfo,curl_error等function requestCardApi($url, $data, $app_key,$mic=false){ $data['timeStamp'] = time(); if($mic){ list($msec, $sec) = explode(' ', microtime());原创 2022-02-22 09:54:32 · 113 阅读 · 0 评论 -
yii2模型类新增数据不成功不报错?解决方案
产景:对接第三方的积分系统,抓取积分订单信息至商城的时候,对接方的文档也有可能是坑爹,插入表不成功。因为对方的文档和接口是不一致的,所以很多时间可以考虑用字符串去存信息。如何调试呢?$this->validate() $model->geterrors等都没有信息返回,可以使用try catch解决分批抓取脚本 /** * 积分会员:门店订单抓取至商城脚本 * desc: 固定参数用于抓取 */ public function actionG原创 2022-02-21 11:48:09 · 648 阅读 · 0 评论 -
yii2中使用ES
当一些场景mysql不能满足的时候,需要使用到ES,比如 通过商品名称查询,分词查询等等,如果使用mysql 的like "%XX%"非常耗性能,可能导致mysql服务器出现就瓶颈问题。那么就需要一种方案来做为中间者减轻数据库压力。原理:查中间者,而中间者的数据又和mysql数据同步。这个中间者当然就是ES啦。参考:Yii 2.0 集成 ElasticSearch 教程 - 教程 - Yii Framework 中文网当然其实原理都差不多,就是各种语言引入对应的ES类库;然后调用方法,其中最主要原创 2022-01-24 15:46:02 · 2231 阅读 · 0 评论 -
判断是否存在对应 php拓展
①phpinfo查看②php --ri 扩展名。php --ri memcached③php -m 查看基本使用:关于 PhpSpreadsheet 简单教程-php教程-PHP中文网原创 2022-01-04 15:36:51 · 260 阅读 · 0 评论 -
redis锁的几种实现
1. redis加锁分类redis能用的的加锁命令分表是INCR、SETNX、SET2. 第一种锁命令INCR这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。然后其它用户在执行 INCR 操作进行加一时,如果返回的数大于 1 ,说明这个锁正在被使用当中。 1、 客户端A请求服务器获取key的值为1表示获取了锁 2、 客户端B也去请求服务器获取key的值为2表示获取锁失败 3、 客户端A执行代码完成,删除原创 2021-12-22 17:05:27 · 19490 阅读 · 0 评论