自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 php 开发常用文档

thinkphp-queue 笔记https://github.com/coolseven/notes/blob/master/thinkphp-queue/README.mdRabbitMQ 中文文档-PHP版https://xiaoxiami.gitbook.io/rabbitmq_into_chinese_php/

2021-01-26 09:57:11 303

原创 Go 快速起步:创建 WebSocket 服务器(聊天室)

和 HTTP 协议一样,WebSocket 协议 也是建立在 TCP/IP协议 基础上的协议 ,但不一样的是 HTTP 协议 为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器。 WebSocket 协议 是一种双向通信协议,在建立连接后,WebSocket服务器和 Browser/UA 都能主动的向对方发送或接收数据!...

2022-06-30 10:04:57 1117 2

原创 Redis 集群在PHP中的使用

predis 基础使用文档https://packagist.org/packages/predis/predisPHP 操作集群代码演示1. 安装 predis:composer require predis/predis2. Redis 基础使用:// 默认值为 127.0.0.1:6379$client = new Predis\Client();$client->set('foo', 'bar');$value = $client->get('foo')

2021-02-01 16:06:36 442

原创 Hyperf 开发技巧

1. 快速启动 Hyperf 服务启用服务命令另存为 hyperf.bat 文件中docker exec -it f0 /bin/sh -c "cd hyperf-skeleton/ && php bin/hyperf.php server:watch"此时,双击该文件即可启用 hyperf 服务,在 PHPStorm 上添加该文件作为脚本快捷键即可一键启动服务,参考 PHPstorm快速启用 Hyperf2. PHPStorm 识别注解File -> Sett

2020-11-30 10:24:46 934

原创 Windows 环境下开发 Hyperf

用户在APP内发布帖子,且在帖子下方支持评论、回复、点赞等功能,针对点赞需求的详细分析:需求:需根据点赞数排序帖子列表;需根据用户标识用户点赞状态;需记录用户最近点赞了哪些帖子;需记录帖子有哪些用户点赞过;问题:因为点赞是写操作,在点赞很频繁的情况下,会有大量的写操作,严重影响了数据库的性能。解决方案1:使用Redis缓存记录用户点赞状态;方案1导致的新问题1:点赞数据保存到Redis时,需求1 根据点赞数排序帖子列表时,SQL语句order by失效;.

2020-11-26 10:31:12 1666 1

原创 模仿 ThinkPHP - db 类的封装实例

模仿 ThinkPHP - db 类的封装实例:class Db extends \mysqli{ // 实例对象 protected static $_instance = null; // mysql配置 protected static $options = [ // 服务器地址 'host' => '127.0.0.1', // 数据库名 'database' => 'test',

2020-05-28 23:25:31 701

原创 mysql 技巧 * 自定义函数与存储过程

自定义函数语法:create function 函数名([参数列表]) returns 数据类型begin sql语句; return 值;end;例1:无参数函数-- 最简单的仅有一条sql的函数CREATE FUNCTION f1()RETURNS VARCHAR(30)RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H...

2020-05-06 21:26:52 1104

原创 mysql 技巧 * 慢查询及分析

概述开启慢查询可以记录到耗时超过设定时间阀值 long_query_time 的语句,默认不开启。开启临时开启:

2020-05-02 13:34:20 355

原创 mysql 技巧 * 查询缓存

原理MySQL 服务收到到查询请求时,会先在内存中找是否有完全一致的查询语句数据,有直接返回,无才经过一系列步骤查询数据,注意是语句完全一致才能被查询缓存命中。如下:SELECT * FROM tbl SELECT * from tbl这两条语句因 FROM 和 from 不同而被视为不同的查询。开启# 查询查询缓存的信息SHOW VARIABLES LIKE 'hav...

2020-04-28 15:12:39 591

原创 PHP 技巧 * 附近的人功能实现

一、准备授权获取用户的经纬度并存入数据库(lng 字段、lat 字段)。二、查询1. 原生查询SELECT *, CONVERT ( 2 * 6378.137 * ASIN( SQRT( POW( SIN( 3.1...

2020-04-16 18:22:50 1209

原创 运维技巧 * Linux 服务器资源上传到百度云盘

安装百度网盘Python客户端 :bypy安装pip install bypy可能因为 pip 版本过低导致按照失败,需要升级更新# 查看版本,如果 pip 不是 20.0.x 以上版本则需要升级pip -V# 下载get-pip.pywget https://bootstrap.pypa.io/get-pip.py# 执行python get-pip.py# 再次...

2020-04-10 00:29:00 560

原创 运维技巧 * 使用 cmd 命令行窗口连接 Linux 服务器

步骤:ssh [admin]@your server ip # 回车过程:扩展:

2020-04-09 15:41:40 931

原创 PHP 技巧 * SVG 保存为图片(分享图生成)

一、准备准备 svg 文件:这一步骤通常由设计完成,而案例是通过 SVG 在线编辑器 生成的; 确保你的环境支持使用 Imagick扩展; 如果是Linux服务器,可能需要按照必要字体,否则中文可能无法正常显示;二、过程:test.svg<svg width="500" height="300" xmlns="http://www.w3.org/2000/svg"&gt...

2020-04-05 21:58:15 1093

原创 mysql 技巧 * 总分相同则依次比较科目A、科目B ..

前提:MySQL 数据表中存储多个用户多个科目的成绩,每个用户的每个科目都记录为一条数据,大致结构如下:需求:统计成绩排名,如总分相同则依次比较科目A、科目B .. 的成绩。eg:总成绩相同,则比较 科目A成绩,高分者排名靠前,如果 科目A 也相同则比较 科目B 成绩,依次比下去。我的解决:创建统计表,记录数据如下(将每个科目的得分都 + 50 使之成为位数相同的...

2020-04-05 13:55:50 515

原创 PHP 技巧 * 置顶功能(指定数据排在前面)

一、如果数据存储于 MySQL 数据库方法1. 直接使用 ORDER BY 实现:SELECT * FROM `infos` ORDER BY id IN (4,5) DESC;方式2. 先查询置顶的数据,再合并未置顶数据:SELECT * FROM `infos` WHERE id in (4,5) UNIONSELECT * FROM `infos` WHERE id...

2020-04-03 14:57:49 2021 1

原创 PHP 技巧 * curl 抓取抖音无水印视频

一、所需工具复制抖音分享的地址,如下:#在抖音,记录美好生活#两位影帝强强联手,梁家辉曾说过有发哥在我怎样都要内敛一点,发哥做为前辈还提携过我 https://v.douyin.com/7J48Rf/ 复制此链接,打开【抖音短视频】,直接观看视频!二、演示地址http://dy.kder.top/;(抓了别人个前段)三、原理抖音app的视频包括播放视频地址(无水印)和下...

2020-03-24 14:35:43 4887 1

原创 PHP 技巧 * GD 库画表格图片演示

一、数据准备下载字体;二、示例代码:<?php// 标题文本 $title = "我是标题";// 数据$data = [ ["id" => "ID", "username" => "用户名", "score" => "得分"], ["id" => 1, "username" => "给你最好的我丶", "score" =&...

2020-03-19 17:29:38 1563

原创 PHP 技巧 * 导出 excel 操作

一、composer 安装 PHPExcel以ThinkPHP5.1 为例,在根目录使用composer 得到 phpexcel 扩展类库(自动保存至 vendor 文件夹):composer require phpoffice/phpexcel二、导出示例: public function testExcel(){ $data = [ ...

2020-03-17 18:50:55 480

原创 PHP 技巧 * echarts 实现指定日期统计图

以 ThinkPHP 为例,其效果示例图如下:>>> 控制器代码:public function stat() // 指定日期 $day = input('day') ?: date('Y-m-d',time()); // 单位 1 /分、 2 /时 $is_min = input('is_min') ?: 2; retur...

2020-03-17 17:46:22 750

原创 PHP 技巧 * 根据二维数组中指定元素排序

方法封装:if (!function_exists('sort_for_arrays')) { /** * 二维数组根据某个字段排序 * @param array $array 要排序的数组 * @param string $keys 要排序的键字段 * @param string $sort 排序类型 SORT_ASC SORT_D...

2020-03-17 10:59:51 459

原创 PHP 技巧 * 获取所有自定义常量

以 ThinkPHP5.0 框架为例,获取其定义的所有常量:get_defined_constants(true)["user"];以上例程的输出类似于:扩展:get_defined_constants—返回所有常量的关联数组,键是常量名,值是常量值。<?phpdefine("MY_CONSTANT", 1);print_r(get_defined_const...

2020-03-05 15:51:03 581

原创 高性能 PHP7 * 压力测试

应用程序在经过开发、测试、调试和分析优化之后,就可以投入生产了。然而,在部署到生产环境之前,有必要对应用程序进行压力/负载测试。压力测试可以提供运行应用程序的服务器在单位时间内处理请求数量的评估结果,根据这个评估结果,我们可以优化程序、Web服务器、数据库和缓存,进而获得更好的性能。本章包括以下几方面内容:Apache JMeter ApacheBench (ab) Siege ...

2020-01-06 16:09:37 659

原创 高性能 PHP7 * 调试和分析

每个程序开发者在实际开发过程中都会遇到种种问题,但却不知道具体发生了什么问题,也不知道这些问题为何会发生。大多数时候可能是逻辑或数据的问题,这些问题通常难以解决,而调试是一种找出症 结所在并解决它们的手段。同样地,我们经常需要弄清楚一个脚本程序消耗了多少资源,包括内存消耗、 CPU以及执行时间。本章主要包括以下内容:Xdebug 使用Sublime Text 3调试 使用Eclipse...

2020-01-06 15:12:18 476

原创 高性能 PHP7 * 提升数据库性能

数据库在动态网站中扮演着一个关键的角色,所有流入流出的数据都会和数据库进行交互。因此,如果PHP应用的数据库没有进行较好的设计或优化,其性能将会受到非常大的影响。MySQL数据库MySQL安装完成后的默认设置所提供的性能并不是最优的,我们总有办法对其进行进一步优化,提升 性能。切记,数据库设计是影响性能的关键因素,设计很糟糕的数据库会对整个性能造成严重影响。查询缓存(Query Cac...

2020-01-03 17:23:30 574

原创 高性能 PHP7 * 应用性能提升

为了提升性能,PHP7 已经完全基于 PHPNG进行重写,不过依然有很多其他的方法可以用来进一步提升 PHP7 性能。Nginx 与 Apache目前有很多 HTTP Server 软件可供使用,目前最流行的是 Nginx 与 Apache。Apache:完整,稳定。每一个请求都由一个线程或进程处理,导致开销大,高并发情况下其性能低下的问题凸显。Nginx:轻量,异步。由于请求...

2020-01-02 15:41:50 732

原创 高性能 PHP7 * 新特性

PHP7 具有很多用于编写高性能、高效代码的新特性,同时也剔除了一些历史版本中过时的特性。类型声明默认情况下,所有的PHP文件都处于弱类型校验模式。<?php// 1:默认值,表示严格类型校验模式,不符则抛 Fatal error// 0:表示弱类型校验模式。declare(strict_types=1);// 规定形参、返回值类型function sum(int ...

2019-12-17 01:20:42 617 1

原创 MySQL* 执行原理

参考:https://blog.csdn.net/dream_188810/article/details/78870520https://blog.csdn.net/soonfly/article/details/70238902MySQL执行流程监听到客户端(php/java/py等)请求连接 MySQL 服务器时,客户端会建立一个线程,而 MySQL 服务器有一个线程池(Co...

2019-12-16 15:47:38 441

原创 Duang~MySQLi 扩展库来袭

PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相对进阶的功能,另外本身也增加了安全性,比如可以大幅度减少 SQL 注入等问题的发生。开启扩展mysqli扩展默认并不会开启,为此我们需要找到 php.ini 文件,并且需要确认删除了[PHP_MYSQLI]部分中的...

2019-12-10 22:28:09 635

原创 与 MySQL 的零距离接触(6~9:mysql函数、存储过程、存储引擎)

内置函数库略参考地址:https://www.runoob.com/mysql/mysql-functions.html自定义函数语法:create function 函数名([参数列表]) returns 数据类型begin sql语句; return 值;end;例1:无参数函数-- 最简单的仅有一条sql的函数CREATE FUNCTIO...

2019-12-10 22:28:06 509

原创 与 MySQL 的零距离接触(4~5:数据基础操作 - 增删改查)

MySQL 中最基本也是最重要的是操作数据表中的记录 ,也就是对数据表中的记录进行增删改查操作。INSERT添加记录的三种方式:1. INSERT ... VALUES ...INSERT [INTO] table_name [(column_name,...)] {VALUES|VALUE} ({expr(表达式)|DEFAULT(默认值)},...),(...),......

2019-12-10 22:27:57 434

原创 与 MySQL 的零距离接触(1~3:表相关)

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL 的使用MySQL安装方式:Typical 典型安装、Custom 自定义安装、Complete 完全安装(最好典型安装、可视化配置)...

2019-12-10 22:27:42 578

原创 搭建了一个自用的PHP框架

代码简单,功能简便,PHP 新手也能看懂。Git仓库地址:https://gitee.com/zhongbaitong/mini-frame.git以下是搭建过程做的一个小记录:1.使用 composer 实现文件自动加载比起 spl_autoload_register() ,显然 composer 更简单跟强大,参考文章:https://www.cnblogs.c...

2019-11-29 17:07:16 789

原创 关于跨域请求及解决方案

跨域问题来源于浏览器的同源策略,协议+主机名+端口号相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。示例:$.ajax({ url: "http://baidu.com", data: {}, success: function (data) { console.log("请求成功:"...

2019-10-30 14:39:48 504

原创 Composer 快速起步

composer 安装及基础使用: 菜鸟教程实例1 安装 tp5打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:使用国内镜像:# 使用 phpcomposer 镜像composer config -g repo.packagist composer https://packagist.phpcomposer.com// 或 阿里云镜像...

2019-10-29 11:20:08 378

原创 PHPer 常用的 Linux 命令

update yum# 命名服务器hostnamectl set-hostname atong# 更新yumyum update -y && rebootinstall nginx# 安装nginxyum -y install nginx# 查看nginx版本nginx -vinstall mysql# 更新mysql - YUM源。rp...

2019-10-10 18:58:12 218

原创 Swoole 快速起步:协程

PHP 语言不支持多线程,因此Swoole 使用多进程模式。在多进程模式下存在进程内存隔离,解决方案就是使用 MySQL、MongoDB、Redis 等外部存储服务。PHP 提供的 MySQL、CURL、Redis等客户端是同步的,会导致服务器程序发生阻塞。Swoole 提供了常用的异步客户端组件,来解决此问题。编写纯异步服务器程序时,可以使用这些异步客户端。在最新的Swool...

2019-09-30 14:21:04 899

转载 什么是进程?什么是线程?进程和线程之间的区别是什么?

什么是进程?什么是线程?进程是系统中正在运行的一个程序,程序一旦运行就是进程。进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。线程与进程的一个主要区别是,统一...

2019-09-30 10:56:51 519

原创 Swoole 快速起步:Timer 毫秒级定时器的使用

swoole 提供了类似 JavaScript 的 setInterval | setTimeout 异步高精度定时器 Timer,与PHP本身的pcntl_alarm相比,Timer更精确(毫秒级别)、性能更高(异步)、可同时设定多个定时器程序,本文以WebSocket 服务器为为例,在监听到新连接时,添加个定时器 demo。文档介绍:https://wiki.swoole.co...

2019-09-27 16:28:26 1233

原创 Swoole 快速起步:Task 任务机制的使用

Task任务机制实际是 将耗时进程投递到异步调用事件Task中处理,从而不阻塞主进程;以Swoole 快速起步:创建 WebSocket 服务器(聊天室)为例,在 WebSocket 服务器监听到新消息相应时,需要一些耗时的操作之后才将数据 send 给客户端,如果不使用Task任务机制时:// 监听 WebSocket 消息事件$server->on('message', f...

2019-09-25 15:29:08 1074

原创 PHP 视频操作(ffmpge - 添加水印/视频压缩/视频截图等)

思路在Linux 服务器上利用ffmpeg操作视频,然后利用php函数shell_exec控制服务器执行视频操作!1、(CentOS7)安装ffmpeg:1.1升级yumsudo yum install epel-release -ysudo yum update -y1.2安装Nux Dextop Yum 源sudo rpm --import http:...

2019-09-23 17:02:38 4473

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除