要使用scheme打开微信调试工具
1
mysql热备份增量备份-Percona XtraBackup
使用备份工具Percona XtraBackup
对mysql进行热备份,增量备份
MYSQL EXPLAIN详解
EXPLAIN是MySQl必不可少的一个分析工具,主要用来测试sql语句的性能及对sql语句的优化,或者说模拟优化器执行SQL语句。
在select语句之前增加explain关键字,执行后MySQL就会返回执行计划的信息,而不是执行sql。但如果from中包含子查询,MySQL仍会执行该子查询,并把子查询的结果放入临时表中。它显示了mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。
...
php8新特性
1、 联合类型
一个变量可以定义多种数据类型
function sumNum(int|float $numX, int|float $numY){
return $numX+$numY;
}
2、命名参数
调用函数时跟上key和value
user(name:'',age:1,sex:1)
...
rabbitmq如何处理消息丢失的问题
开启rabbitmq事务功能
使用confirm机制
linux服务器中病毒后的清除处理
今天去查看服务器的时候发现中了挖矿病毒,很是恼火。因为我平时很少接触服务器,一般都是部署项目,配置域名就完事。
服务器CPU资源使用一直处于100%的状态或,连接服务器的时候明显感觉到消耗的时间比以往要久。Kill该进程以后还会更换端口,很快就又被创建出来了。
...
SSE技术详解:使用HTTP做服务端数据推送应用的技术
SSE 和 WebSocket 做的是同一件事情。当你需要用新数据局部更新网络应用时,SSE 可以做到不需要用户执行任何操作,便可以完成。
举例我们要做一个统计系统的管理后台,我们想知道统计数据的实时情况。类似这种更新频繁、 低延迟的场景,SSE 可以完全满足。
其他一些应用场景:例如邮箱服务的新邮件提醒,微博的新消息推送、管理后台的一些操作实时同步等,SSE 都是不错的选择。
...
Linux系统下提示磁盘空间满,但实际占用却很小
错误描述:
今早发现磁盘空间满,服务数据写不进数据库中,使用du -h --max-depth=1命令查看大文件,发现文件只占100G,然而使用df -h 命令查看时,磁盘用了200G占用了百分之一百。其中100G的空间莫名其妙就没有了
解决方法:
用lsof检查后才发现原因是,有文件被删除,而进程还活着,因而造成还占用空间的现象。可以通过命令 lsof |grep deleted 来进行查看
把这些进程删掉...
ElasticSearch搜索
相关性搜索
match
必须同时满足两个单词才能查出 && and
match_phrase
Or查找
{
"query" : { "match" : { "desc" : "软件 系统" }},
"from": 20,
"size": 10
}
...
Eloquent ORM
递增和递减
要代替以下实现:
$article = Article::find($article_id);
$article->read_count++;
$article->save();
可以这样做
$article = Article::find($article_id);
$article->increment('read_count');
...
redis分布式锁
$predis = new Predis\Client( [ 'scheme' => 'tcp' , 'host' => '127.0.0.1' , 'port' => 6379 ] ); $predis->connect(); $predis->auth( "redis_password" ); // 密码验证 $predis->select( $dbIndex ); // 选择所使用的数据库, 默认有16个 redis集群选择0 $is_lock = $predis->exists( $lock_key );
单服务器文件锁-大并发时,插入数据和修改数据到数据库时应使用到的文件锁
在没有使用集群(多服务器)时,可以使用文件锁的方式控制适量往数据库写数据
/**
* 阻塞模式(后面的进程会一直等待前面的进程执行完毕)
*/
public function createOrder1(){
$file = fopen(__DIR__.'/lock.txt','w+');
//加锁
if(flock($file,LOCK_EX)){
//TODO 执行业务代码
flock($file,LOCK_UN);//解锁
}
//关闭文件
fclose($file);
}
...
依赖注入-实际代码案例-laravel核心功能代码注释讲解
/**
* 容器类用于装实例和提供实例的回调函数
* Class Container 容器类
* @package App\Ioc
*/
class Container {
//没有用的变量,调试使用
public static $debug_count = 0;
//声明数组,用于装实例的回调函数,真正的容器还会装实例等其他内容 从而实现单例等高级功能
protected $bindings = [];
//绑定接口 和 生成相应实例的回调函数
public function bind( $abstract , $concrete = null , $shared = false) {
Container::$debug_count++;
...
laravel一些使用技巧和工具
api没有CSRF 保护
web取消 CSRF 保护检查需要这样做
app/Http/Middleware/VerifyCsrfToken.php
protected $except = [ // //'foo','bar' ];
laravel最佳实践-纠正代码习惯-实际经验总结
PHP最佳写法实践
翻译来源:https://github.com/alexeymezenin/laravel-best-practices
铁则:
*所有命名必须见名知意,易读!!!
*永远不要在路由文件里面写逻辑!!!
*永远不要在模板文件里面写原始 php 代码!!!
遵循 命名约定
未写完的功能(比如在下班时)在代码里要写 //todo 已经完成的功能: 未完成的功能:
数据库查询只能写在Model层和Repository
单一职责原则
说明:一个函数里面不要有太多功能的代码,不同功能的代码应该拆分成不同的函数
laravel模型操作
创建模型
php artisan make:model User // 默认对应的表是 users php artisan make:model AbCd // 默认对应的表是 ab_cds /** 规则: 1. 除第一个大写字母,其他大写字母前都加上下划线 2. 所有的大写字母改成小写 3. 末尾加 s */
模型之读
App\User::all(); // 返回包含所有对象的集合 \App\User::where('name', 'John')->first(); // 返回对象
网站seo
seo是长期过程,长期才会有效果,切勿急躁!
需要了解的百度算法:只需要知道是做什么的,不要触碰到百度底线即可。
绿萝 2013年2月19日上线 - 打击买卖链接的行为,包括超链中介、出卖链接的网站、购买链接的网站
石榴 2013年5月17日上线 - 打击大量妨碍用户正常浏览的恶劣广告的页面
冰桶 2014年8月30日上线 - 打击强行弹窗app下载、大面积广告等影响用户正常浏览体验的页面
飓风 严厉打击恶劣采集行为
清风 欺骗用户下载,绑定用户下载软件
细雨 页面标题列出最为核心的业务、产品,而不是通过堆砌来吸引用户关注
闪电页面加载速度快会有利于蜘蛛抓取
flex布局
flex布局
一下6个属性设置在容器上
flex-direction :布局方向
flex-wrap :自动换行
flex-flow :上面两个属性的简写
justify-content :子项目在容器的布局方式(横向)
align-items :子项目在交叉轴上如何对齐 (纵向)
align-content :定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用
macos 苹果系统安装老版本php
brew加入第三方仓库
brew tap shivammathur/php安装php
brew install shivammathur/php/php@7.2链接
brew link --overwrite --force shivammathur/php/php@7.2
workerman 使用rabbitmq示例
composer config -g repo.packagist composer composer require workerman/rabbitmq
receive.php
<?php use Bunny\Channel;use Bunny\Message;use Workerman\Worker; use Workerman\RabbitMQ\Client;require __DIR__ . '/vendor/autoload.php';
...