PHP

PHP 进阶之路 – 亿级 pv 网站架构实战之性能压榨

本博客并非全部原创,其实是一个知识的归纳和汇总,里面我引用了很多网上、书上的内容。也给出了相关的链接。

本文涉及的知识点比较多,大家可以根据关键字去搜索相关的内容和购买相应的书籍进行系统的学习。不对的地方大家予以批评指正。

有人给我留言说,亿级 PV 就别写文章了,随便用几个开源软件就能搞定了,只要不犯什么大错。我不以为然,如果你利用了相同的思想,使用了更高性能的基础服务,也许就能支持更多的流量并发,节约更多的服务器,优化的思路才是重点。

本内容的视频分享见我的直播

                

【译】一行代码就将你的PHP-FPM内存占用降低至少一半

标题直译:如何减少PHP-FPM (php5-fpm)内存占用50%
原标题:How to reduce PHP-FPM (php5-fpm) RAM usage by about 50%
英文原文:http://linuxbsdos.com/2015/02...

PHP-FPMPHPFastCGI过程管理器。在类Unix操作系统(包括Linux以及BSD系统)中,PHP-FPM通过安装php5-fpm(Linux)或者php56-fpm(FreeBSD 10.1

        

php 插入mongodb uuid类型

$luuid ='e4eaaaf2-d142-11e1-b3e4-080027620cdd'; //格式一定要正确 » RFC 4122.

$uuid='0123456789abcdef';
$id = new \MongoDB\BSON\Binary($uuid,\MongoDB\BSON\Binary::TYPE_UUID);

查mongodb的LUUID类型为以下代码

$luuid= str_replace("-","",$luuid);
$id= new \MongoDB\BSON\Binary(hex2bin($luuid),\MongoDB\BSON\Binary::TYPE_OLD_UUID);
$id=bin2hex($id);
var_dump($id);
luuid 转为uuid:
$luuid=二进制字符
$id=bin2hex($luuid);
$a = substr($id,6, 2).substr($id,4, 2).substr($id,2, 2).substr($id,0, 2);
$b = substr($id,10, 2).substr($id,8, 2);
$c
        

一些laravel 框架学习资源

http://www.cnblogs.com/yjf512/p/4061892.html 使用laravel一分钟搭建CURD后台页面

https://www.laravist.com/blog/post/programming-with-laravel-5-model-controller-view-basic-workflow   Laravel教程 五:MVC的基本流程

https://www.laravist.com/blog/post/programming-with-laravel-5-laravel-forms-input   Laravel教程 六:表单 Forms

https://www.laravist.com/blog/post/programming-with-laravel-5-database-and-eloquent-model     Laravel教程 四:数据库和Eloquent

https://my.oschina.net/u/1186749/blog/643850  php artisan常用方法

http://www.verronknowles.com/laravel-migrations-with-moloquent-and-mongodb-with-mysql-still-present/

http://www.opentechguides.com/tutorials/laravel-mongodb/10/mongodb-migration.html

`

http://blog.sina.com.cn/s/blog_a77576280102x60a.html

http://www.jb51.net/article/54736.htm

http://blog.csdn.net/iroycn/article/details/47036719

http://www.jb51.net/article/60989.htm

[ Laravel 5.1 文档 ] 数据库 —— 填充数据

 

还有官方文档 。…

    

php session阻塞页面分析及优化 (session_write_close session_commit使用)

这个问题很多做PHP开发朋友应该都有遇到过,一个启用了session_start 页面,由于执行时间过长。导致用户访问另外一个很简单的启用session_start页面一直阻塞着。 直到第一个页面执行完了。第二个页面才可以读取。这个就是,我们常说的,session阻塞机制。

也就是说session是有锁的,为防止并发的写会话数据,php自带的的文件保存会话数据是加了一个互斥锁(在session_start()的时候)。
程序执行session_start(),此时当前程序就开始持有锁。
程序结束,此时程序自动释放Session的锁。

如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于每个请求,PHP执行session_start(),就会取得文件独占锁,只有在该请求处理结束后,才会释放独占锁。这样,同时多个请求就会引起阻塞。…