- 博客(73)
- 资源 (18)
- 收藏
- 关注
转载 SpringBoot接收参数的七种方式
关于最后这个@RequestBody要重点讲解下,此时前端发送请求不能使用get方式,需要使用post方式,还有请求传递的参数需要是json字符串,这里重点要设置的是Content-Type,要将其设置为application/json。此时我们可以继续使用postman进行测试,注意这里传入的参数名要和User里面的属性名称一致(首字母之外的大小写保持一致,已测),否则无法识别接收,则相应的值会为null。1、直接把请求参数写在Controller相应的方法的形参中,此场景适用于请求参数较少的情况。
2023-05-31 09:48:13 644
原创 七牛删除资源并刷新CDN
问题:当调用七牛删除资源接口后,因为有CDN缓存,如果在后台设置CDN缓存的时间过长,资源就会一直存在,要调用CDN接口刷新。七牛vendor包:qiniu/php-sdk参考:https://developer.qiniu.com/kodo/1241/phpPHP代码:<?phpuse Qiniu\Auth;use Qiniu\Config;use Qiniu\Storage\BucketManager;use Qiniu\Cdn\CdnManager;class
2022-01-12 19:10:56 605
原创 视图索引优化
项目中建了一个视图,用到了子查询,类似:SELECT a.id, a.name,( SELECT SUM( b.amount ) FROM ( `b` JOIN `c` ) WHERE b.pre_id = c.id AND b.id = a.id ) AS `total_amount` FROM a WHERE a.status=1GROUP BY a.name ORDER BY a.id DESC;视图查询比较慢,查询一次要3s,以为是视图算
2021-10-11 18:20:27 188
原创 laravel-admin批量获取ID传值
需求:列表为grid页面,需要通过一个批量操作按钮,获取选中的ID,并传给新页面或ajax使用。1、grid列表增加批量工具按钮protected function grid() { $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->add('批量获取ID', new TestAc.
2021-09-25 16:35:45 1014
转载 Mysql 之根据经纬度按距离排序
一、方式一st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。SELECT *,(st_distance(point(lng,lat),point(116.3424590000,40.0497810000))*111195/1000 ) as juli FROM table ORDER BY juli ASC二、方式二...
2020-03-19 16:33:37 3243 3
转载 【消息队列】RabbitMQ如何处理消息丢失
首先明确一点 一条消息的传送流程:生产者->MQ->消费者所以有三个地方都会丢失数据:生产者发送给MQ的途中出现网络问题MQ自己没保管好弄丢了消费者拿到数据后出错了没有最终完成任务依次分析1)生产者弄丢了数据生产者将数据发送到rabbitmq的时候,可能因为网络问题导致数据就在半路给搞丢了。1.使用事务(性能差)可以选择用rabbitmq提供的事务功能,...
2019-11-29 14:53:06 298
转载 API接口设计:防参数篡改+防二次请求
API接口由于需要供第三方服务调用,所以必须暴露到外网,并提供了具体请求地址和请求参数为了防止被第别有用心之人获取到真实请求参数后再次发起请求获取信息,需要采取很多安全机制1.首先: 需要采用https方式对第三方提供接口,数据的加密传输会更安全,即便是被破解,也需要耗费更多时间2.其次:需要有安全的后台验证机制【本文重点】,达到防参数篡改+防二次请求主要防御措施可以归纳为两...
2019-11-29 14:09:22 339
原创 PHP封装base64图片上传接口
HTML代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>base64图片上传</title> <script> window.onload = function(){ ...
2019-11-09 00:18:01 386
转载 MySQL创建用户和授权
权限管理: 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。那么这时就需要我们来简单了解一下:如何创建用户和密码 给当前的用户授权 移除当前用户的权限创建新...
2019-11-04 19:38:26 115
原创 nginx转发post请求
应用场景:由于项目迁移,旧接口的代码重新部署在了另外一个域名下的项目,比如:旧接口地址:https://cecshop.com/api/recommend/add新接口地址:https://capis.com/rec/recommend/addhttps://cecshop.com/api/recommend/add 转发到 https://capis.com/rec/recom...
2019-08-09 10:39:14 12895
原创 PHP封装Medoo类
参考:https://medoo.in/docComposer安装:composer require catfan/medoocomposer update封装Mysql类:require __DIR__.'/vendor/autoload.php';use Medoo\Medoo;class Mysql { private $database; p...
2019-07-17 10:27:43 503
转载 使用systemd管理swoole服务
Systemd 是 Linux 系统中新一代的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。很多新的Linux发行版已经使用Systemd取代了init,作为初始守护进程。Swoole的服务器程序可以编写一段service脚本,交由systemd进行管理。实现故障重启、开机自启动等功能。编写Service脚本Systemd的Servi...
2019-07-08 17:32:20 276
原创 PHP小程序发放红包接口
微信文档:https://pay.weixin.qq.com/wiki/doc/api/tools/miniprogram_hb.php?chapter=13_9&index=2PHP调用接口需要证书(curl用到):微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->下载证书需要支付密钥:key设...
2019-07-03 14:20:25 1542 1
原创 最新阿里云免费申请SSL证书配置https
图文申请步骤如下:1、产品与服务 ->安全(云盾) -> SSL证书(应用安全)2、购买证书3、免费型DV SSL + Symantec + 1个域名 ->立即购买4、立即支付5、支付成功 ->证书控制台6、申请7、填写域名等一系列信息 ->下一步8、验证 ->提交审核9、审核通过后 ...
2019-06-20 22:41:39 583
转载 windows下host文件修改与刷新
1、window环境:hosts文件位置:C:\windows\system32\drivers\etc\hosts刷新方式:ctrl+r,输入CMD,回车在命令行执行:ipconfig /flushdns#清除DNS缓存内容。ps:ipconfig /displaydns//显示DNS缓存内容2、linux环境文件位置:/etc/hosts刷新...
2019-06-13 13:57:34 7415
转载 小程序分享统计功能 设置查看分享时长才可增加积分
小程序自带的有数据分析功能,而且很详细:概况、昨日概况、实时统计、访问分析、来源分析、自定义分析、用户画像、累计访问人数、TOP受访页面等等,并且也提供了表格下载功能。这里增加的分享统计日志功能主要是用来记录分享页面的访问分析,即是谁分享的页面被谁打开了,一次打开从前台进入后台这个浏览时间有多长。说白了,也就是出于营销推广方面的需要,来进行分享统计,谁分享了页面增加积分,页面分享到群组里面后,...
2019-06-12 14:39:59 2744
原创 jenkins、github部署php项目
前提:服务器已安装JDK、Tomcat、Jenkins、Git。1、安装插件“Publish Over SSH”、“Git plugin”2、配置项目服务器ssh通信项目服务器上生成密钥对ssh-keygen查看公钥cat /root/.ssh/id_rsa.pub 复制公钥到/root/.ssh/authorized_keys复制私钥到粘贴板cat /roo...
2019-06-05 16:30:45 1185
原创 Centos7部署jenkins
1、安装JDK官网下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html上传安装:yum install jdk-8u211-linux-x64.rpm2、二进制安装Tomcatcd /usr/local/srcwget http:/...
2019-06-05 09:56:09 1626
转载 Linux使用free命令buff/cache过高
在Linux系统中,我们经常用free命令来查看系统内存的使用状态。在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态:其实:buffers/cache占用的较多,说明系统中有进程曾经读写过文件,但是不要紧,这部分内存是当空闲来用的Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。一般情况下,这个操作中主要的内存释放都来自于...
2019-06-04 14:54:26 967
原创 mysql左连接多条件,on子句多条件
user用户表:CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT '', `username` varchar(64) DEFAULT '', `password` varchar(255) DEFAULT '', `last_ip...
2019-06-03 18:06:45 14783
原创 PHP两个大数相加问题
由于位数过多会出现溢出无法正常一位一位显示的问题,算法原理:定义大数为字符串,通过遍历从个位依次相加,判断是否大于10需要进位实现。代码:#!/usr/bin/php<?phperror_reporting(E_ALL);//两个大数相加,定义为字符串,整型太长会溢出$a = '987654321098765432109876543210';$b = '9876543...
2019-06-03 16:15:43 757
原创 HTTP状态码
HTTP 响应状态代码指示特定的 HTTP 请求是否已成功完成。响应分为五类:信息响应,成功响应,重定向,客户端错误和服务器错误。状态码由RFC 2616 的第10部分定义。100 ContinueHTTP100 Continue信息状态响应代码表明目前为止的所有内容都是正常的,并且客户端应该继续请求或者如果它已经完成则忽略它。要让服务器检查请求的标题,客户端必须在其初始请求中发送...
2019-05-31 14:35:07 1207
转载 WebSocket 结合 Nginx 实现域名及 WSS 协议访问
简单了解一下 WebSocket现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。在这种情况下,HT...
2019-05-30 10:55:21 469
原创 php实现不超时下载
项目简介: PHP项目后台常有下载导出数据的功能,当数据量比较小的时候,查询也比较快, 这时候使用PHP同步代码下载都可以实现,不会出现超时的情况(502/504错误), 当数据量大了之后,查询会很慢,生成的excel也很慢,比如可能需要3分钟, 这个时候同步代码就有问题了。解决方法就是使用异步代码,不超时下载。采用swoole扩展, 集成websocket客户端、websock...
2019-05-28 16:44:28 1093
原创 mysql条件判断语句
业务场景中,比如一个用户有几种状态(1:有效、2:无效、3:其他),这时候查询就需要用到条件语句。语法:CASE 字段 WHEN `条件1` THEN `结果1` WHEN `条件2` THEN `结果2` WHEN ... ELSE `其他结果`END示例:SELECT id,name,(CASE status WHEN 1 THEN '有效...
2019-05-23 11:01:16 10045
原创 mysql手机号打码
利用mysql的CONCAT、LEFT、RIGHT函数实现:SELECT CONCAT(LEFT(phone,3), '****' ,RIGHT(phone,4)) AS phone FROM user;
2019-05-23 10:37:49 788
转载 mysql的分区和分表
分区分区就是把一个数据表的文件和索引分散存储在不同的物理文件中。mysql支持的分区类型包括Range、List、Hash、Key,其中Range比较常用:RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。HASH分区:基于用户定义的表达式的返回值来进行选...
2019-05-22 17:10:35 107
原创 PhpSpreadsheet导入导出excel
封装一个类:<?phprequire __DIR__.'/vendor/autoload.php';use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\IOFactory;use PhpOffice\PhpSpreadsheet\Reader\Xlsx as ReaderXlsx;c...
2019-05-21 15:10:35 1270
原创 mysql自定义字段排序order by field
在mysql中除了可以用ASC、DESC进行排序外,还有一个field()自定义字段排序函数,用法如下:select * from table order by field(id,3,1,5)以上语句的意思是按照id字段的3、1、5依次排序...
2019-05-20 11:33:21 882
转载 php垃圾回收机制-php引用计数基本知识点
前言是的,平时经常听到大牛说到的gc,就是垃圾回收器,全称Garbage Collection。早期版本,准确地说是5.3之前(不包括5.3)的垃圾回收机制,是没有专门的垃圾回收器的。只是简单的判断了一下变量的zval的refcount是否为0,是的话就释放否则不释放直至进程结束。乍一看确实没毛病啊,然而其中隐藏着变量内存溢出的风险:http://bugs.php.net/bug.ph...
2019-05-20 01:44:02 158
转载 MySQL学习笔记(五):MySQL表级锁和行级锁
一:概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁( row-level locking),也支持表级锁,但默认情况下是采用行级锁。MySQL主要的两种锁的特性可大致归纳如下: 表级锁: 开销小,加锁快;...
2019-05-20 00:35:06 273
转载 PHP实现多服务器SESSION共享
PHP实现多服务器SESSION共享为什么要session共享现在稍微大一点的网站基本上都有好几个子域名,比如www.feiniu.com, search.feiniu.com, member.feiniu.com,这些网站如果需要共用用户登录信息,那么就需要做到session共享,当然前提是有相同的主域。PHP的session原理客户端访问php页面,执行session_star...
2019-05-19 21:53:53 1007
转载 如何编写一个PHP的C扩展
为什么要用C扩展C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。IO操作如CURL,因为耗时主要在IOWait上,C扩展没有明显优势。另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C扩展可操作的范围更广。第一步下载PHP的源代码,如php-5.4.16。解压后进入php-5.4.16\ext目录...
2019-05-19 03:18:23 1284 1
转载 关于PHP程序员解决问题的能力
这个话题老生长谈了,在面试中必然考核的能力中,我个人认为解决问题能力是排第一位的,比学习能力优先级更高。解决问题的能力既能看出程序员的思维能力,应变能力,探索能力等,又可以看出他的经验。如果解决问题能力不佳是无法通过面试的。这里举个例子,假如我执行了一个PHP的脚本,如php test.php,预期是可以返回一个字符串。但执行后没有任何信息输出,这时候通过什么方法能知道程序错在哪里?这里可以将...
2019-05-19 03:00:16 98
转载 HTTP协议头部与Keep-Alive模式详解
1、什么是Keep-Alive模式?我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免...
2019-05-19 02:12:13 356
转载 Limit分页优化
1. 直接用limitstart,count分页语句,也是我程序中用的方法:select*fromproductlimitstart,count当起始页较小时,查询没有性能问题,我们分别看下从10,100,1000,10000开始分页的执行时间(每页取20条),如下:select*fromproductlimit10,20 0.016秒se...
2019-05-19 01:42:07 270
转载 Nginx详解(正向代理、反向代理、负载均衡原理)
Nginx配置详解nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。这里主要通过三个方面简单介绍nginx反向代理 负载均衡 nginx特点1. 反向代理关于代理说到代理,首先...
2019-05-17 11:12:21 209
原创 PHP-FPM子进程数量设置
1、php-fpm优化参数介绍他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。下面4个...
2019-05-17 10:46:58 4094
转载 redis持久化的几种方式
1、前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”...
2019-05-16 18:01:06 85
转载 Mysql Explain结果字段含义分析
mysql 执行计划分析sql如何使用索引 联接查询的执行顺序 查询扫描的数据行数ID列id列中的数据为一组数字,表示执行select语句顺序 id值相同时,执行顺序由上至下 id值越大优先级越高,越先被执行SELECT_TYPE列SIMPLE: 不包含子查询或是union操作的查询 primary :查询中如果包含任何子查询,那么最外层的查询则被标记为 primary...
2019-05-16 17:52:08 116
php5.6.X_redis扩展
2016-04-06
sugarcrm6.5.2中文汉化包,兼容6.5.*版本
2016-03-21
PHP_redis-5.3 扩展dll
2015-04-21
php_redis.dll 扩展 For PHP5.4.x
2015-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人