<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ufan94的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ufan94</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ufan94]]></copyright><item><title><![CDATA[mac安装memcache及memcached集群]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/98969253</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/98969253</guid><author>ufan94</author><pubDate>Fri, 09 Aug 2019 17:22:47 +0800</pubDate><description><![CDATA[一。安装memcache
brew info memcached
 6880  brew info libevent
 6882  brew install automake
 6885  brew install doxygen
 6886  brew install pkg-config
 6887  brew info libevent
 6888  brew install libeven...]]></description><category></category></item><item><title><![CDATA[利用shell进行redis集群的批量开启]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/98219742</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/98219742</guid><author>ufan94</author><pubDate>Fri, 02 Aug 2019 18:03:04 +0800</pubDate><description><![CDATA[新建文件
sudo vim redis.sh

#!/bin/bash


start(){


REDIS_HOME=/usr/local
APP_NAME=redis
WAIT_TIME=5
echo "REDIS_HOME:"${REDIS_HOME}


for i in {7000..7005}
do
    REDIS_ID=$(ps -ef | grep ${APP_NAME} |g...]]></description><category></category></item><item><title><![CDATA[Redis(Mac)集群配置 Redis Cluster]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/98118593</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/98118593</guid><author>ufan94</author><pubDate>Fri, 02 Aug 2019 13:50:49 +0800</pubDate><description><![CDATA[Redis 的集群主从模型是一种高可用的集群架构。本章主要内容有：
高可用集群的搭建，
redis-cli连接集群，
新增集群节点，
删除集群节点，
其他配置补充说明。
高可用集群搭建
集群（cluster）技术是一种较新的技术，通过集群技术，可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益，其任务调度则是集群系统中的核心技术。
集群简介
Redis 集群是一个可以在多个 ...]]></description><category></category></item><item><title><![CDATA[MAC 10.14.4 进入恢复模式解决安装软件报错的问题]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/97893657</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/97893657</guid><author>ufan94</author><pubDate>Wed, 31 Jul 2019 10:29:39 +0800</pubDate><description><![CDATA[一。进入恢复模式
开机按住Option键在出现的启动选择菜单中
按住 command+R 进入恢复模式
2.使用csrutil命令
打开终端Terminal，键入csrutil可以显示该命令的使用方法
usage: csrutil &lt;command&gt;
Modify the System Integrity Protection configuration. All configurat...]]></description><category></category></item><item><title><![CDATA[【laravel】整合云片短信验证---引入第三方类的方式]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/96993710</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/96993710</guid><author>ufan94</author><pubDate>Tue, 23 Jul 2019 15:05:21 +0800</pubDate><description><![CDATA[一。自定义了一个类
【比如在 App\Helpers中自定义一个类CloudPiece.php】
&lt;?php
namespace App\Helpers;

use Log;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;

class CloudPiece
{
    protected $systemKey;//系统key
 ...]]></description><category></category></item><item><title><![CDATA[【laravel】增加记录日志的中间件-用户发送请求和响应的日志记录]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/96881959</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/96881959</guid><author>ufan94</author><pubDate>Mon, 22 Jul 2019 18:21:43 +0800</pubDate><description><![CDATA[在/app/http/Middleware/中添加日志中间件UserRequestAndResponseLog.php
&lt;?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Storage;

class Use...]]></description><category></category></item><item><title><![CDATA[消息队列MQ技术的介绍和原理]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/91442995</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/91442995</guid><author>ufan94</author><pubDate>Tue, 11 Jun 2019 15:49:51 +0800</pubDate><description><![CDATA[一。MQ的工作原理(图见附件)
首先来看本地通讯的情况，应用程序A和应用程序B运行于同一系统A，它们之间可以借助消息队列技术进行彼此的通讯：应用程序A向队列1发送一条信息，而当应用程序B需要时就可以得到该信息。
其次是远程通讯的情况，如果信息传输的目标改为在系统B上的应用程序C，这种变化不会对应用程序A产生影响，应用程序A向队列2发送一条信息，系统A的MQ发现Q2所指向的目的队列实际上位于系统B，...]]></description><category></category></item><item><title><![CDATA[mysql 一张表根据另外一张表统计的个数来排序  我来答]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/87089835</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/87089835</guid><author>ufan94</author><pubDate>Tue, 12 Feb 2019 14:51:53 +0800</pubDate><description><![CDATA[例如： 表shop 有 shop_id字段。 表goods对应的 shop_id 字段 。shop一对多goods
所以现在要按照goods表中对应shop的个数 来对shop从多到少进行排列。
请用2句查询语句来实现 。一句至多有一个select
select t1.shop_id,count(1)  from shop t1 
left join goods t2 on t1.shop_id=...]]></description><category></category></item><item><title><![CDATA[【pgsql】How to reset sequence in postgres and fill id column with new data?]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/86330476</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/86330476</guid><author>ufan94</author><pubDate>Sat, 12 Jan 2019 01:57:47 +0800</pubDate><description><![CDATA[一。清除表
TRUNCATE table ex_statistics

二。The best way to reset a sequence to start back with number 1 is to execute the following
ALTER SEQUENCE &amp;lt;tablename&amp;gt;_&amp;lt;id&amp;gt;_seq RESTART WITH 1



So, for...]]></description><category></category></item><item><title><![CDATA[登陆添加语音验证码并且阿里云发送短信]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84971643</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84971643</guid><author>ufan94</author><pubDate>Wed, 12 Dec 2018 13:47:45 +0800</pubDate><description><![CDATA[腾讯云短信接入：
文档解析：
https://cloud.tencent.com/document/product/382/9557
composer安装：
qcloudsms/qcloudsms_php
得到IP
$ip = '';
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_...]]></description><category></category></item><item><title><![CDATA[小米推送PHP包集成composer]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84953587</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84953587</guid><author>ufan94</author><pubDate>Tue, 11 Dec 2018 13:29:33 +0800</pubDate><description><![CDATA[rookiejin/mipush
github地址：
https://github.com/rookiejin/mipush
小米推送网址：
https://dev.mi.com/console/doc/detail?pId=230
php小米推送类：
https://blog.youkuaiyun.com/weixin_38728964/article/details/82464476
https://ww...]]></description><category></category></item><item><title><![CDATA[索引]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84861727</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84861727</guid><author>ufan94</author><pubDate>Thu, 06 Dec 2018 17:25:30 +0800</pubDate><description><![CDATA[一。选择数据类型
越小【占用空间小，
更短的索引意味索引更小、占用CPU时间更少、占用内存更少、占用IO更少和很更好的性能】
越简单，避免空值【避免复杂计算】
二。查询中很少涉及的或者是重复值比较高 不建；where 高频使用的话，建
三。有主键【唯一并且可以快速定位到表中的某一行】或者外键【加速表与表之间的连接速度】 建
四。
1.对查询进行优化，应尽量避免全表扫描，首先应考虑在 where 及...]]></description><category></category></item><item><title><![CDATA[composer原理]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84839663</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84839663</guid><author>ufan94</author><pubDate>Wed, 05 Dec 2018 17:09:07 +0800</pubDate><description><![CDATA[大家在使用一个操作系统的时候（windows,ios,android）,如果需要安装软件，在window可能会选择腾讯软件管家，在苹果手机一般会选择AppStore，在安卓手机可能会选择百度移动应用。
同样的，在php项目开发的时候我们也会遇到这样的问题，比如说我们公司内部自己写了一个框架，现在我们的项目当中需要使用到验证码，那么就需要我们自己的程序员来完成验证码类的开发，需要对php图像处理函数...]]></description><category></category></item><item><title><![CDATA[算法【1，2，3，6，7，14，15，30，计算下一个值，并且用相应的算法计算】]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84790571</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84790571</guid><author>ufan94</author><pubDate>Tue, 04 Dec 2018 16:17:51 +0800</pubDate><description><![CDATA[//第二题 【下一个数字是：30+1=31】
function test($m)
{
    if($m&amp;amp;lt;0)return 0;
    $res=0;
    for($j=0;$j&amp;amp;lt;=$m+1;$j++){
        if($j%2==0){//偶数
            $res=$res*2;
        }else{
            $res=$res+1...]]></description><category></category></item><item><title><![CDATA[算法【运用递归计算在n个球中任取m个球（不放回）共有多少种取法】]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84790513</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84790513</guid><author>ufan94</author><pubDate>Tue, 04 Dec 2018 16:15:25 +0800</pubDate><description><![CDATA[思路：
设在n个球中有一个特殊球x。每一次取球时进行如下讨论:
把所有的取法分为两种情况，一种为含x球，另一种为不含x球。
含x球则取下一个球，即f(n-1,m-1);
不含x球则在剩下的n-1个球中取m个球,即f(n-1,m)。
 function f($n,$m)
{
    if ($n &amp;lt; $m) return 0;
    if ($n == $m) return 1;
    i...]]></description><category></category></item><item><title><![CDATA[静态变量]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84574253</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84574253</guid><author>ufan94</author><pubDate>Tue, 27 Nov 2018 21:46:50 +0800</pubDate><description><![CDATA[/php中的变量作用范围的另一个重要特性就是静态变量（static 变量）。
静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时，其值不会消失,会使用上次执行的结果。/
static是定义一个静态对象或静态变量，
关于static 定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了。


创建对象object=newClass()，然后使用”−&amp;amp;gt;”调...]]></description><category></category></item><item><title><![CDATA[Laravel/lumen初级教程之插入初始化数据]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84142151</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84142151</guid><author>ufan94</author><pubDate>Fri, 16 Nov 2018 16:50:45 +0800</pubDate><description><![CDATA[链接地址：
https://www.jellythink.com/archives/234
前言
我们在开发的时候总是会遇到这样的场景。比如我们开发了一个系统，这个系统在上线时，或者第一次部署时，都需要在数据库中导入一些初始化数据，系统启动都是需要依赖这些初始化数据的。
在开发基于Laravel的应用之前，我们都是维护一个上线的DB变更脚本，或者也叫DB初始化脚本。系统部署时，将该SQL脚本交给D...]]></description><category></category></item><item><title><![CDATA[Lumen 有问题？ 填坑吧]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84138307</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84138307</guid><author>ufan94</author><pubDate>Fri, 16 Nov 2018 14:07:28 +0800</pubDate><description><![CDATA[1、.env中 正常是需要加入这些配置项

#缓存驱动
CACHE_DRIVER=file
#阵列驱动
QUEUE_DRIVER=sync
#lumen默认使用格林尼治时间
APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00

2、文件和配置问题
config等等文件夹，可以自行根据需要添加

php artisan 中 只有部分的命令可执行
seeder命令出现错误的解决方法...]]></description><category></category></item><item><title><![CDATA[on update cascade 和on delete cascade 的区别]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84138278</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84138278</guid><author>ufan94</author><pubDate>Fri, 16 Nov 2018 14:05:46 +0800</pubDate><description><![CDATA[1.这是数据库外键定义的一个可选项，
2.用来设置当主键表中的被参考列的数据发生变化时，外键表中响应字段的变换规则的。
3.update 则是主键表中被参考字段的值更新，delete是指在主键表中删除一条记录：
4.on update 和 on delete  后面可以跟的词语有四个
no action  ， set null ，  set default  ，cascade
no action ...]]></description><category></category></item><item><title><![CDATA[composer 只更新自动加载而不去更新依赖]]></title><link>https://blog.youkuaiyun.com/ufan94/article/details/84101987</link><guid>https://blog.youkuaiyun.com/ufan94/article/details/84101987</guid><author>ufan94</author><pubDate>Thu, 15 Nov 2018 12:05:11 +0800</pubDate><description><![CDATA[在composer.json 中添加了psr-4自动加载
然后执行composer update 才能加载那个添加的目录
执行update的时候总是会更新依赖包
如何才能做到 只更新自动加载而不去更新依赖
–补充–
composer dump-autoload

...]]></description><category></category></item></channel></rss>