<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[longjef的博客]]></title><description><![CDATA[神既道，道法自然，如来！]]></description><link>https://blog.youkuaiyun.com/longjef</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; longjef]]></copyright><item><title><![CDATA[【Git】git hooks 自动化部署不同分支代码]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/107633329</link><guid>https://blog.youkuaiyun.com/longjef/article/details/107633329</guid><author>longjef</author><pubDate>Tue, 28 Jul 2020 12:19:58 +0800</pubDate><description><![CDATA[本文主要介绍如何用git hooks来进行自动化部署发布我们的代码，省去了我们发布前一系列不必要的打包发布等繁琐步骤。



背景

用git管理代码时，每次发布时，我们都需要经过以下步骤：

将本地代码push至远程仓库；
	然后再ssh到服务器上进行git pull操作；
	对代码进行编译打包压缩发布等吧啦吧啦各种无趣的操作；
这很是繁琐，本着程序猿（媛）能躺着就不坐着的基本素养，我们是不是能够自动去监测我们的远程仓库，当我们每次push之后，它就自动去实现代码的更新编译部署等一系列功能呢？答案是，当.]]></description><category></category></item><item><title><![CDATA[BitTorrent 原理简介]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/106108550</link><guid>https://blog.youkuaiyun.com/longjef/article/details/106108550</guid><author>longjef</author><pubDate>Wed, 13 May 2020 22:34:02 +0800</pubDate><description><![CDATA[引言

之前我这边在生产环境中使用 Murder 软件的 BT 上传下载的方式来实现大文件的快速分发。
这属于 BT 软件的应用。最近重新看了下 BT 协议的分析与实现，现在重新了解下 BT 协议原理。

BitTorrent 原理简述


与传统客户端/服务器网络通信模式不同，对等方到对等方（P2P）通信模式在近年来越来越流行起来。
在 P2P 模式中，服务和资源分布化，资源不集中存储在某些设备上，而是分散存储在运行 P2P 程序的设备上，
每一个对等方都可以为其他对等方提供服务。
BitTorrent（]]></description><category></category></item><item><title><![CDATA[BT种子的原理]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/106108401</link><guid>https://blog.youkuaiyun.com/longjef/article/details/106108401</guid><author>longjef</author><pubDate>Wed, 13 May 2020 22:27:00 +0800</pubDate><description><![CDATA[这个可以分两个层面来解释下：

1、torrent文件的原理：如果您这个问题是指torrent文件本身，那么，当您对一个文件（或者文件夹）制作成.torrent文件，实际上生成的.torrent文件里面主要包括了这些信息：

A）这个文件（文件夹）中数据的SHA1值，比如一个1G的文件，如果按1M每块进行分块，则会被分为了1000块，torrent中就会有这1000个数据块的指纹值（SHA1的hash值），这个占据了torrent文件的绝大部分空间。这些值的目的是为了下载的过程中进行数据校验，确保数据收到的]]></description><category></category></item><item><title><![CDATA[前端图片压缩上传(纯js的质量压缩，非长宽压缩)]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/80151881</link><guid>https://blog.youkuaiyun.com/longjef/article/details/80151881</guid><author>longjef</author><pubDate>Mon, 30 Apr 2018 20:44:41 +0800</pubDate><description><![CDATA[此demo为大于1M对图片进行压缩上传

若小于1M则原图上传，可以根据自己实际需求更改。

demo源码如下：



    
    XMLHttpRequest上传文件
    
        /*
         三个参数
         file：一个是文件(类型是图片格式)，
         w：一个是文件压缩的后宽度，宽度越小，字节越小
         objDi]]></description><category></category></item><item><title><![CDATA[MySQL大数据量快速分页实现]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53929394</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53929394</guid><author>longjef</author><pubDate>Thu, 29 Dec 2016 16:07:27 +0800</pubDate><description><![CDATA[以下分享一点我的经验 



一般刚开始学SQL语句的时候，会这样写




代码如下:


SELECT * FROM table ORDER BY id LIMIT 1000, 10;


但在数据达到百万级的时候，这样写会慢死 


代码如下:


SELECT * FROM table ORDER BY id LIMIT 1000000, 10;]]></description><category></category></item><item><title><![CDATA[CentOS6.5单独 安装指定的PHP版本（php5.5）]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53763322</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53763322</guid><author>longjef</author><pubDate>Tue, 20 Dec 2016 15:22:47 +0800</pubDate><description><![CDATA[安装指定的php版本

参考：https://webtatic.com/packages/php55/

查询是否安装有php


[cpp] 
view plain 
copy 


#rpm -qa|grep php  



如果有安装的PHP包，先删除他们
#yum remove php.x86_64 php-cli.x86_64 php-common.x]]></description><category></category></item><item><title><![CDATA[Mysql Explain 详解]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53741237</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53741237</guid><author>longjef</author><pubDate>Mon, 19 Dec 2016 16:11:33 +0800</pubDate><description><![CDATA[一.语法

explain 

例如: explain select * from t3 where id=3952602;

二.explain输出解释

+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | selec]]></description><category></category></item><item><title><![CDATA[CentOS6.5下Redis安装与配置]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53486795</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53486795</guid><author>longjef</author><pubDate>Tue, 06 Dec 2016 15:02:07 +0800</pubDate><description><![CDATA[本文详细介绍redis单机单实例安装与配置，服务及开机自启动。如有不对的地方，欢迎大家拍砖o(∩_∩)o
（以下配置基于CentOS release 6.5 Final， redis版本3.0.2 [redis版本号中间位是偶数的是稳定版，奇数的为非稳定版]）


一．安装redis
1)     下载redis安装包
可去官网http://redis.io ，也可通过wget命令，]]></description><category></category></item><item><title><![CDATA[OAuth的机制原理讲解及开发流程]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53307425</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53307425</guid><author>longjef</author><pubDate>Wed, 23 Nov 2016 16:50:48 +0800</pubDate><description><![CDATA[本想前段时间就把自己通过QQ OAuth1.0、OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家，可一直很忙，今天抽点时间说下OAuth1.0协议原理，及讲解下QQ对于Oauth1.0的认证开发。闲话多说了点，下面直接进入主题。
　　1、OAuth的简述
　　OAuth（Open Authorization，开放授权）是为用户资源的授权定义了一个安全、开放及简单的标准，]]></description><category></category></item><item><title><![CDATA[OAuth的机制原理讲解及开发流程]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53284259</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53284259</guid><author>longjef</author><pubDate>Tue, 22 Nov 2016 12:00:16 +0800</pubDate><description><![CDATA[本想前段时间就把自己通过QQ OAuth1.0、OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家，可一直很忙，今天抽点时间说下OAuth1.0协议原理，及讲解下QQ对于Oauth1.0的认证开发。闲话多说了点，下面直接进入主题。
　　1、OAuth的简述
　　OAuth（Open Authorization，开放授权）是为用户资源的授权定义了一个安全、开放及简单的标准，]]></description><category></category></item><item><title><![CDATA[nginx系统真正有效的图片防盗链完整设置详解]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53284108</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53284108</guid><author>longjef</author><pubDate>Tue, 22 Nov 2016 11:45:16 +0800</pubDate><description><![CDATA[关于nginx防盗链的方法网上有很多教程，都可以用，但是我发现很多教程并不完整，所做的防盗链并不是真正的彻底的防盗链！
一般，我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示，但是您如果通过浏览器直接输入图片地址，仍然会显示图片，仍然可以右键图片另存为下载文件！
依然可以下载？这样就不是彻底的防盗了！那么，nginx应该怎么样彻底地实现真正意义上的防盗链呢？
首先，我们来看下ng]]></description><category></category></item><item><title><![CDATA[php中实现记住密码下次自动登录的例子]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53284016</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53284016</guid><author>longjef</author><pubDate>Tue, 22 Nov 2016 11:37:39 +0800</pubDate><description><![CDATA[这篇文章主要介绍了php中实现记住密码下次自动登录的例子,本文使用cookie实现记住密码和自动登录功能,需要的朋友可以参考下。

做网站的时候经常会碰到要实现记住密码，下次自动登录，一周内免登陆，一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的方法有N多种。
整个过程就是用户在登陆的时候，如果选择了记住密码或]]></description><category></category></item><item><title><![CDATA[apache性能测试工具ab使用详解]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53283942</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53283942</guid><author>longjef</author><pubDate>Tue, 22 Nov 2016 11:33:27 +0800</pubDate><description><![CDATA[网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题。
性能测试工具目前最常见的有以下几种：ab、http_load、webbench、siege。今天我们专门来介绍ab。
ab是apache自带的压力测试工具。ab非常实用，它不仅可以对apache服务器进行网站访问压力测试，也可以对或其它类型的服务器进行]]></description><category></category></item><item><title><![CDATA[连续输入密码错误3次,第二天才能登录]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53282610</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53282610</guid><author>longjef</author><pubDate>Tue, 22 Nov 2016 10:01:04 +0800</pubDate><description><![CDATA[登录安全性 一天内连续输入密码错误3次,第二天才能登录(过了当天凌晨24点)
下面我们先在数据库中建立一个试验表，id，用户名username，密码pwd，次数num，时间time（date）；
这个功能主要在数据库中分3中情况判断
1：解锁时间到了，清除数据库以前的记录数，次数值还原0
2：在解锁时间内，但是不良记录已经达到3次，不能登
3：在解锁时间内，并且不良记录未满3次，可以登录]]></description><category></category></item><item><title><![CDATA[超级管理员登录后如果连续XX分钟没有操作再次操作需要重新登录]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53282402</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53282402</guid><author>longjef</author><pubDate>Tue, 22 Nov 2016 09:46:49 +0800</pubDate><description><![CDATA[首先在设置session页面时
session_start();
session("name",$adminname);
//加入session时间 time（）
session("time",time());
再进入
防非法登录的控制器
class CommonController extends Controller
{
public function __construct]]></description><category></category></item><item><title><![CDATA[微信公众平台实现获取用户OpenID的方法]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53262413</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53262413</guid><author>longjef</author><pubDate>Mon, 21 Nov 2016 18:54:35 +0800</pubDate><description><![CDATA[这篇文章主要介绍了微信公众平台实现获取用户OpenID的方法,需要开发人员经过微信授权后获取高级接口才能使用此功能，或者使用微信测试号测试（https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login）用户OpenID对于微信公众平台建设有着非常广泛的用途,需要的朋友可以参考下。
用户点击微信自定义菜单view类型按钮后，微信客户端]]></description><category></category></item><item><title><![CDATA[http错误代码表]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53260992</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53260992</guid><author>longjef</author><pubDate>Mon, 21 Nov 2016 16:48:17 +0800</pubDate><description><![CDATA[所有 HTTP 状态代码及其定义。 
　代码  指示  
2xx  成功  
200  正常；请求已完成。  
201  正常；紧接 POST 命令。  
202  正常；已接受用于处理，但处理尚未完成。  
203  正常；部分信息 — 返回的信息只是一部分。  
204  正常；无响应 — 已接收请求，但不存在要回送的信息。  
3xx  重定向  
301  已移动 — 请]]></description><category></category></item><item><title><![CDATA[简单易用的倒计时js代码]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53170439</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53170439</guid><author>longjef</author><pubDate>Tue, 15 Nov 2016 13:38:37 +0800</pubDate><description><![CDATA[倒计时js代码想必大家都有用过，大同小异，本例为大家介绍的是简单易用的,需要的朋友可以参考下。





简单易用的倒计时js代码

*{ margin:0; padding:0; list-style:none;}
body{ font-size:18px; text-align:center;}
.time{ height:30px; padding:200px;}




  
  ]]></description><category></category></item><item><title><![CDATA[AJAX 跨域请求 - JSONP获取JSON数据（详解-示例）]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53170361</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53170361</guid><author>longjef</author><pubDate>Tue, 15 Nov 2016 13:33:59 +0800</pubDate><description><![CDATA[Asynchronous JavaScript and XML (Ajax) 是驱动新一代 Web 站点（流行术语为 Web 2.0 站点）的关键技术。Ajax 允许在不干扰 Web 应用程序的显示和行为的情况下在后台进行数据检索。使用
XMLHttpRequest 函数获取数据，它是一种 API，允许客户端 JavaScript 通过 HTTP 连接到远程服务器。Ajax 也是许多 mashu]]></description><category></category></item><item><title><![CDATA[PHP抽奖程序概率算法]]></title><link>https://blog.youkuaiyun.com/longjef/article/details/53157327</link><guid>https://blog.youkuaiyun.com/longjef/article/details/53157327</guid><author>longjef</author><pubDate>Mon, 14 Nov 2016 11:30:29 +0800</pubDate><description><![CDATA[//概率算法,6个奖项
$prize_arr = array(
    '0' => array('id'=>1,'prize'=>'iphone6','v'=>1),
    '1' => array('id'=>2,'prize'=>'数码相机','v'=>5),
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
    '3' => arr]]></description><category></category></item></channel></rss>