<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LittleLittleKnight的博客]]></title><description><![CDATA[记录自己点滴的进步]]></description><link>https://blog.youkuaiyun.com/LittleLittleKnight</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LittleLittleKnight]]></copyright><item><title><![CDATA[Svn配置钩子，自动执行脚本 （适合个人项目]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/140759263</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/140759263</guid><author>LittleLittleKnight</author><pubDate>Mon, 29 Jul 2024 00:48:55 +0800</pubDate><description><![CDATA[这样在提交代码更新后，svn服务器会自动执行这个脚本，更新线上代码。在svn的项目仓库目录下，有个hooks的文件夹，编辑如下代码。]]></description><category></category></item><item><title><![CDATA[php处理0xfeff]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/135959777</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/135959777</guid><author>LittleLittleKnight</author><pubDate>Wed, 31 Jan 2024 18:18:38 +0800</pubDate><description><![CDATA[php处理字符串里面的特殊字符]]></description><category></category></item><item><title><![CDATA[cat读取大文件]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/134021076</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/134021076</guid><author>LittleLittleKnight</author><pubDate>Tue, 24 Oct 2023 20:32:55 +0800</pubDate><description><![CDATA[命令: cat -n 文件名 | tail -n +行号 | head -n 100  >  my.log。命令: cat -n 文件名 | grep ‘查询字符串’ | tail -n 1 // 找到该行的行号。命令: cat -n 文件名 | grep ‘查询字符串’ | tail -n 1 // 找到该行的行号。查询某个字符串在文件中出现的最后1次,并且查询字符串之后的100行，并写入到my.log文件。命令: cat -n 文件名 | head -n +行号 | tail -n 100。]]></description><category></category></item><item><title><![CDATA[Goland配置Docker开发环境]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/130496909</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/130496909</guid><author>LittleLittleKnight</author><pubDate>Thu, 04 May 2023 23:13:02 +0800</pubDate><description><![CDATA[最近公司里面的项目用到了Docker，正好准备学习下Golang，所以就学习Golang顺便也学习下Docker怎么用的，刚好从头开始配置下环境。设置Dockerfile，新建一个Dockerfile文件，写入下面的内容，用此镜像生成。设置好Docker服务器，注意虚拟机路径和本地文件路径，本地的就是项目路径。之后就可以去写go文件了，再执行就是用的Docker容器编译执行的。2.下载golang官方镜像，速度还挺快的。在Docker上能看到运行的容器。首先增加一个配置，选择go构建。]]></description><category></category></item><item><title><![CDATA[拼多多砍价算法 php]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/113728000</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/113728000</guid><author>LittleLittleKnight</author><pubDate>Sat, 06 Feb 2021 17:07:42 +0800</pubDate><description><![CDATA[# 话不多说,直接看代码.可以根据需求调整区间
/**
 * @param $amount          商品总金额
 * @param $ndu             需要人次
 * @param $surplus_amount  剩余金额
 * @param $count_joiner    参与人次
 * @return array
 */
function cutAKnife($amount , $ndu , $surplus_amount , $count_joiner){
    // 1]]></description><category></category></item><item><title><![CDATA[ThinkPHP5接口跨域]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/109722095</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/109722095</guid><author>LittleLittleKnight</author><pubDate>Mon, 16 Nov 2020 15:30:52 +0800</pubDate><description><![CDATA[在本地做测试的时候,使用localhost访问接口出现如下提示:

Access to XMLHttpRequest at 'http://wxmini.test.com/api/win_lottery/addLottery' from origin 'http://localhost:8080' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-]]></description><category></category></item><item><title><![CDATA[shell中echo 'log' > /dev/null 2>&1的意思]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/105434122</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/105434122</guid><author>LittleLittleKnight</author><pubDate>Fri, 10 Apr 2020 15:09:41 +0800</pubDate><description><![CDATA[经常看到有些shell脚本后面会加上这么一句  command &gt; /dev/null 2&gt;&amp;1  那么这个是什么意思呢
根据我了解的，总结下仅供自己使用的解释：
举个栗子：
echo 'log' &gt; /dev/null 2&gt;&amp;1

echo  'log'  :  这个很简单就是打印 log 。
&gt;  			 :  在shell中表示重定向,即将此次输...]]></description><category></category></item><item><title><![CDATA[Nginx日志每天自动切割保存]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/105359863</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/105359863</guid><author>LittleLittleKnight</author><pubDate>Tue, 07 Apr 2020 11:26:24 +0800</pubDate><description><![CDATA[一般网站的访问日志和错误日志都是打开的，但是nginx的日志都是单个文件，时间长了，文件难免会变得太大，而且会影响服务器性能，因此有必要对nginx日志进行每日切割保存，减小文件大小，同时也更方便查看日志。
实现思路
shell脚本+定时任务+nginx信号控制，完成日志定时切割
具体步骤
在需要保存日志或者是其他目录，新建一个shell脚本。一般shell脚本都是.sh来标识：
1、创建一个文件...]]></description><category></category></item><item><title><![CDATA[配置Git服务器，并实现自动同步[暂未连接到github库]]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/103401880</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/103401880</guid><author>LittleLittleKnight</author><pubDate>Thu, 05 Dec 2019 16:20:25 +0800</pubDate><description><![CDATA[1.首先服务器和客户端都需要安装 git，这个就不说了.
创建 git 用户
2.在服务器上
# 创建git服务器
cd /www/gitBase
git init --bare www_lib.git  # 创建裸仓库,用作git服务器
chown -R git:git www_lib.git

# 初始化站点目录
cd /www/wwwroot/
git clone /www/gitBase/...]]></description><category></category></item><item><title><![CDATA[Mysql查询分组group by排序的问题]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/103202037</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/103202037</guid><author>LittleLittleKnight</author><pubDate>Fri, 22 Nov 2019 15:58:16 +0800</pubDate><description><![CDATA[mysql的group by语法可以根据指定的规则对数据进行分组，分组就是将一个数据集划分成若干个小区域，然后再针对若干个小区域进行数据处理。本文将介绍mysql使用group by分组时，实现组内排序的方法。
mysql的group by语法可以对数据进行分组，但是分组后的数据并不能进行组内排序。
例如一个评论表有多个用户评论，需要获取每个用户最后评论的内容。
创建测试数据表及数据
CREATE...]]></description><category></category></item><item><title><![CDATA[Mysql查询字段替换]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/103086348</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/103086348</guid><author>LittleLittleKnight</author><pubDate>Fri, 15 Nov 2019 15:40:25 +0800</pubDate><description><![CDATA[一直以来处理数据的方式是Mysql查询出来的结果交给PHP去处理，但是对数一些简单的操作 ,其实没有必要再转手交给php处理，比如常见的,对用户名或者手机号进行部分屏蔽处理.
php处理是这样子
$res = $model-&gt;where('1') -&gt; select();
// 假设 $res 结果为 array(array("user_name" =&gt; "13188880000...]]></description><category></category></item><item><title><![CDATA[Redis更新数据加锁]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/102957360</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/102957360</guid><author>LittleLittleKnight</author><pubDate>Thu, 07 Nov 2019 16:22:43 +0800</pubDate><description><![CDATA[最近做活动页面为了处理并发问题，使用了Redis无序集合来保存用户参与数据，但是测试的时候发现，原本设置了30的总数，结果插入进来了38条数据，所以需要考虑到并发问题。
这里用到了Redis的setnx方法，用来判断锁
setnx用于设置一个KEY-VALUE，这个函数会先判断Redis中是否有这个KEY，如果没有就SET，有就返回False
因此可以这样

    /**
     * 加锁
 ...]]></description><category></category></item><item><title><![CDATA[数据库查询每年,每月,每天的统计]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/97797865</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/97797865</guid><author>LittleLittleKnight</author><pubDate>Tue, 30 Jul 2019 17:26:24 +0800</pubDate><description><![CDATA[最近准备看看系统里面的订单数量和每个月的业绩，刚好可以补一补sql知识，废话不多说了,直接上干货

首先介绍下 Mysql 的几个内置函数
YEAR()函数接受date参数，并返回日期的年份。
mysql&gt; SELECT YEAR('2018-01-01');
+--------------------+
| YEAR('2018-01-01') |
+-------------------...]]></description><category></category></item><item><title><![CDATA[前端函数节流与函数防抖 (包括使用场景)]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/96481599</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/96481599</guid><author>LittleLittleKnight</author><pubDate>Fri, 19 Jul 2019 15:34:24 +0800</pubDate><description><![CDATA[概念

函数节流: 频繁触发,但只在特定的时间内才执行一次代码
函数防抖: 频繁触发,但只在特定的时间内没有触发执行条件才执行一次代码

两者区别在于函数节流是固定时间做某一件事，比如每隔1秒发一次请求。而函数防抖是在频繁触发后，只执行一次（两者的前提都是频繁触发）
函数节流
函数节流的应用场景一般是onrize，onscroll等这些频繁触发的函数，比如你想获取滚动条的位置，然后执行下一步动作
...]]></description><category></category></item><item><title><![CDATA[Linux快速清空文件]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/90447945</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/90447945</guid><author>LittleLittleKnight</author><pubDate>Wed, 22 May 2019 17:16:58 +0800</pubDate><description><![CDATA[1、使用重定向的方法
[root@centos7 ~]# du -h test.txt 
4.0K    test.txt
[root@centos7 ~]# &gt; test.txt 
[root@centos7 ~]# du -h test.txt 
0    test.txt

2、使用true命令重定向清空文件
[root@centos7 ~]# du -h test.txt 
4.0K...]]></description><category></category></item><item><title><![CDATA[缓存击穿、缓存穿透和缓存雪崩]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/90268512</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/90268512</guid><author>LittleLittleKnight</author><pubDate>Thu, 16 May 2019 17:43:33 +0800</pubDate><description><![CDATA[缓存击穿
&nbsp;&nbsp;定义： 缓存中的key一般设有过期时间，如果某个key过期了，恰在这个时候，有大量的并发请求访问这个key，则这些请求都会到达DB,导致DB瞬间压力过大，压垮DB。
解决方案： 1.设置互斥锁，mutex。当缓存失效时不时立即去访问数据库，而是使用缓存工具的操作成功带返回值的操作，比如redis的setnx（set if not exit），memcache的ad...]]></description><category></category></item><item><title><![CDATA[FastAdmin使用建议]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/88735066</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/88735066</guid><author>LittleLittleKnight</author><pubDate>Fri, 22 Mar 2019 10:45:27 +0800</pubDate><description><![CDATA[1.规划好数据表 ！！！
直接用命令创建后台管理菜单
//生成fa_test表的CRUD
php think crud -t test
//生成fa_test表的CRUD且一键生成菜单
php think crud -t test -u 1
//删除fa_test表生成的CRUD
php think crud -t test -d 1
//生成fa_test表的CRUD且控制器生成在二级目录下
p...]]></description><category></category></item><item><title><![CDATA[Apache配置路由重写]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/88293210</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/88293210</guid><author>LittleLittleKnight</author><pubDate>Thu, 07 Mar 2019 11:28:51 +0800</pubDate><description><![CDATA[默认的vhosts.conf

DocumentRoot &quot;D:\web&quot;
&amp;lt;Directory &quot;D:\web&quot;&amp;gt;
    Options -Indexes -FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
  \...]]></description><category></category></item><item><title><![CDATA[微信第三方平台遇到的坑]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/80541767</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/80541767</guid><author>LittleLittleKnight</author><pubDate>Tue, 05 Mar 2019 10:07:35 +0800</pubDate><description><![CDATA[1.代公众号发起网页授权 
回调地址redirect_uri一直报错，整理之后发现是在绑定参数时用了http_build_query(array),url作为array),url作为array),url作为array里面的一个参数进行了urlencode转码,但是http-build_query()函数也会进行urlencode转码，相当于被转码了两次，其中的%被转换成了%25，所以一直报错 
2...]]></description><category></category></item><item><title><![CDATA[linux定期备份mysql数据库]]></title><link>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/79629380</link><guid>https://blog.youkuaiyun.com/LittleLittleKnight/article/details/79629380</guid><author>LittleLittleKnight</author><pubDate>Tue, 20 Mar 2018 18:46:14 +0800</pubDate><description><![CDATA[    今天在做数据库的数据备份，查了些许资料。刚好得出了结果，在测试版本的服务器上运行正常，希望明天能自动备份吧。首先写mysql备份执行sh，这里用的mysqldump来执行备份    首先在服务器下创建备份目录   mkdir /backups     创建备份程序 vi DatabaseName.sh  :        #!/bin/bash        mysqldump --uus...]]></description><category></category></item></channel></rss>