PHP7之线程安全

以前总觉得php是多进程单线程的,每个访问都是一个单独的进程互相不干扰各自的数据,数据是隔离的,最早的PHP都是来一个用户新建一个进程,访问结束就销毁这个进程,但是这样非常的浪费性能,后续PHP-fpm的出现将这个进程复用实现了,大大的优化速度,用户来了以后是分配一个线程的空闲进程来服务,用户离开就回到空闲里...

PHP内存管理器机制

概述内存是每个工程师逃避不了的问题,了解内存管理机制更有助于了解PHP7内存分配的原理,更好的使用PHP7这门语言 PHP7内存管理器: PHP脚本运行不是直接从系统中申请的,而是调用了Zend Memory Manager (Zend 内存管理器)提供的一系列接口函数来间接申请内存,如果管理器内存够用,...

系统性能指标

这篇文章记录查看系统负载相关方法 1. uptime命令uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 12uptime 10:43:21 up ...

爬虫常见请求头总结

1.引言在我们编写爬虫应用的时候经常会遇到不同浏览器返回不同内容的情况,所以这里收集常见的UserAgent来供以后查阅。 2.PC端的UserAgent safari 5.1 – MAC User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8;...

php信号量控制

上一篇文章学习到了php的共享内存,但是仅仅这个是不够的,我们还需要更精确的控制,避免多个进程同时写入共享内存的情况发生,我们还需奥信号量的控制等内容 准备PHP 也提供了类似的内置扩展 sysvsem(这个扩展在 Windows 环境下没有,文档中将 ftok 函数也归到这个扩展中,但实际上 ftok 是...

php共享内存学习

php中进程间通信介绍的很少,今天我来学习学习怎么实现共享内存的实现 安装 安装地址 需要在安装的时候添加 –enable-shmop 来启用该函数的功能 可以通过 phpinfo(); 来确认是否安装成功,我这里查看 shmop support => enabled 代表启用成功了 主要...

spring boot配置多环境

我是经常会遇到不同环境配置不同参数的情况,例如我们在本地开发环境的端口1111 但是测试环境就要换成2222,线上环境端口就要换成8080端口,为了应对这种情况, spring boot给我们提供了更成熟的方案。 配置公共文件spring boot默认配置文件是application.properties这...

Spring boot 修改启动banner内容

我们在启动Spring boot时候会出现以下情况 我们可以将它改成自己产品的内容修改方式如下 在 src/main/resources/banner.txt 创建并加入内容: 12345678910 _ (_) ...

Snowflake(twitter 64位唯一ID生成算法)

在很多业务场景中会遇到id唯一的问题,我就遇到很多,数据库中的自增的生成,接下来我们一起学习唯一ID生成算法 Snowflake 组成结构 雪花算法总共64位组成(不要问我为什么,这是具体规定啊) 1.1 正负码1位 (通常为0) 1.2 毫秒级时间41位 1.3 节点码10位 由于设计之初是分布式ID,...

单例模式(PHP实现)

介绍一下单例的应用场景:最简单的场景就是数据库了, 还有框架中基础的应用配置加载了,使用单例模式有如下好处,避免过多的new对象造成大量资源廊坊和超出最大连接数而产生应用down机问题,可以全局设立一个单访问点避免多出访问点造成难以维护的现象,便于调试直接可以设立日志记录全局设立统一节点,避免导出var_dum...