应用场景,多人合作开发项目的时候,我们要给别人的文件添加内容时候,首先要拉取别人的分支,下面是具体步骤

 

Administrator@AFOIH-1122 MINGW64 /d/api (master)

$ git remote -v
origin  git@github.com:test/apis.git (fetch)
origin  git@github.com:test/apis.git (push)

Administrator@AFOIH-1122 MINGW64 /d/api (master)
$ git remote add upstream https://github.com/other/apis.git

Administrator@AFOIH-1122 MINGW64 /d/api (master)
$ git remote -v
origin  git@github.com:test/apis.git (fetch)
origin  git@github.com:test/apis.git (push)
upstream        https://github.com/other/apis.git (fetch)
upstream        https://github.com/other/apis.git (push)

Administrator@AFOIH-1122 MINGW64 /d/api (master)
$ git fetch upstream
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 1 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From https://github.com/other/apis
 * [new branch]      master     -> upstream/master

Administrator@AFOIH-1122 MINGW64 /d/api (master)
$ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.

Administrator@AFOIH-1122 MINGW64 /d/api (master)
$ git merge upstream/master
Updating 177e46d..4c9fd1a
Fast-forward

Read More →

SAPI:Server Application Programming Interface 服务器端应用编程端口。它就是PHP与其它应用交互的接口,PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。
SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi 、fast-cgi、cli、isapi、apache 模块的 DLL

CGI
CGI即通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执 行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。
CGI方式在遇到连接请求(用户 请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi 方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内 存,CPU时间等,造成效能低下。

FastCGI
fast-cgi 是cgi的升级版本,FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全称PHP FastCGI进程管理器进行管理。

FastCGI的工作原理

Read More →

php 提供的字符串压缩方法有

1.gzcompress——压缩一个字符串
这个函数使用ZLIB压缩给定字符串数据格式。

2.gzencode——创建一个字符串gzip压缩
这个函数返回输入数据的一个压缩版本兼容程序gzip的输出

3.gzdeflate——缩小一个字符串
这个函数使用缩小数据格式压缩给定字符串。

4.bzcompress — 把一个字符串压缩成 bzip2 编码数据
bzcompress() 压缩了指定的字符串并以 bzip2 编码返回数据。

gzcompress 速度最快,压缩比率较高。
gzdeflate 压缩比率最高,速度稍慢于gzcompress
gzencode 与 gzdeflate 比较接近,gzdeflate稍有优势
bzcompress 速度最慢,压缩比率最慢。

具体如下:

下面php代码通过gzcompress和gzuncompress压缩和解压缩字符串,可以设定压缩级别

$str = ‘Hello I am a very very very very long string’;
$compressed = gzcompress($str, 9);//压缩级别为9
$uncompressed = gzuncompress($compressed);
echo $str, “\n”;
echo $uncompressed, “\n”;
echo base64_encode($compressed), “\n”;
echo bin2hex($compressed), “\n”;
echo urlencode($compressed), “\n”;

软件版本
memcached-1.4.5
memcache-3.0.5
php-5.2.11

1.查memcache状态
/usr/bin/perl /usr/local/src/memcached-1.4.5/scripts/memcached-tool localhost:11211
或者
telnet localhost 11211

2.手动清除memcached测试

1). flush_all
echo “flush_all” | nc localhost 11211

# telnet localhost 11211
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
get var_key
VALUE var_key 0 13
test variable
END
flush_all
OK
get var_key
END
quit
Connection closed by foreign host.

2). 重启memcached进程
kill $(ps aux|grep memcached|grep -v grep |awk ‘{print $2}’)
/usr/local/memcached/bin/memcached -d -m 256 -p 11211 -u nobody

3)Memcache::flush() immediately invalidates all existing items.
/* procedural API */
$memcache_obj = memcache_connect(‘memcache_host’, 11211);
memcache_flush($memcache_obj);
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect(‘memcache_host’, 11211);
$memcache_obj->flush();
?>
这个测试的表现是请求Memcache::flush()以后仍可以get $key取到值,而且通过memcached-tool 查到该item的max_age并无变化.