欢迎来到 艾瑞可erik 的魔法世界 🧙‍♂️

一只全栈开发的程序猿,偶尔做做运维、PHP、Goland、Python、Java、摄影、画画、写作、顺便睡觉,反正整站都搞过。

📚 289 篇文章 🏷️ 501 个标签 📂 89 个分类

🔥 最新文章

php中单元测试安装phpunit(win+linux)

要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文件中:

要使用 PHP档案包(PHAR)需要有 phar 扩展。

要使用 PHAR 的 —self-update 功能需要有 openssl 扩展。

如果启用了 Suhosin 扩展,需要在 php.ini 中允许执行 PHAR:

suhosin.executor.include.whitelist = phar

如果要全局安装 PHAR:

$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
$ phpunit --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.

也可以直接使用下载的 PHAR 文件:

$ wget https://phar.phpunit.de/phpunit.phar
$ php phpunit.phar --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.

Windows

整体上说,在 Windows 下安装 PHAR 和手工在 Windows 下安装 Composer 是一样的过程:
  1. 为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin
  2. ;C:\bin 附加到 PATH 环境变量中(相关帮助
  3. 下载 https://phar.phpunit.de/phpunit.phar 并将文件保存到 C:\bin\phpunit.phar
  4. 打开命令行(例如,按 Windows+R » 输入 cmd » ENTER)
  5. 建立外包覆批处理脚本(最后得到 C:\bin\phpunit.cmd):
    C:\Users\username>cd C:\binC:\bin>echo @php "%~dp0phpunit.phar" %* > phpunit.cmdC:\bin>exit
  6. 新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit:
    C:\Users\username>phpunit --versionPHPUnit x.y.z by Sebastian Bergmann and contributors.
phpunit官方中文手册 https://phpunit.de/manual/current/zh_cn/installation.html
下载地址:https://phar.phpunit.de/

hadoop2.8.0的部署安装教程

Hadoop部署准备 本地vmware安装 Linux系统家族中 centos7 下载地址http://101.110.118.58/isoredirect.centos.org/centos/7/isos/x86\_64/CentOS-7-x86\_64-Minimal-1611.iso Java对应版本1.8.0_121 Hadoop版本2.8.0下载地址 http://mirror.bit.edu.cn/apache/hadoop/common/ 可以根据自己喜好的版本下载

1.基本配置

首先安装一个centos7并配置好java Java环境配置 我的java安装地址 /usr/java/ jdk1.8.0_121 编辑java环境 vi ~/.bash_profile 添加或修改 export JAVA_HOME=/usr/java/jdk1.8.0_121 export PATH=$JAVA_HOME/bin:$PATH 执行 . ~/.bash_profile 使变量生效

PHP数组、函数、字符串的常识

php数组排序

sort()根据数组所包含元素进行升序排列 sort()函数是区分大小写。

所有大写字母都在小写字母后面。

asort()函数和ksort()函数对关联数组排序

例如:$a=array(‘name’=>100,’user’=>200,’title’=>300);

函数asort()是根据数组$a的每个元素值进行排序。在数组$a中元素值为数字。

PHP算法和递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php 
header("Content-Type:text/html;charset=utf-8");

$arr=array(1,12,53,14,5,16,7,18,91,10,11,120); //**冒泡排序** 小数往前放,大数往后放

function getpao($arr) {

$len=count($arr); //设置一个空数组 用来接收冒出来的泡 //该层循环控制 需要冒泡的轮数

for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数

for($k=0;$k<$len-$i;$k++) {

if($arr\[$k\]>$arr\[$k+1\]) {

$tmp=$arr\[$k+1\]; $arr\[$k+1\]=$arr\[$k\]; $arr\[$k\]=$tmp;

}

}

}

return $arr;

}

mysql如何应对消息

在使用mysql数据库时,如果是商城那就要考虑到秒杀、抢购、发消息等同一时间访问数据库所带来的堵塞从而压垮数据库。 如何有效的在程序和mysql是做些处理来应对呢。

答案就是:把http请求放入内存的高速队列,然后对队列里的数据按一定的规则进行分流处理。 当一个用户发送一个请求时,我们可以给他延迟2s,依次类推。

如果是发送通知类消息,用户量大,不可能同时发送,那么就是需要列队发送;把发送的消息操作延迟,同时针对活跃用户 优先发送(即异步操作),合理分摊服务器负担。

异步操作优点:部署简单,使用mysql内置存储过程和定时器即可完成大部分调度,服务器部署简单,容易迁移。

缺点:对于大数据量、上千万的消息处理效果不佳。不能应对实时性要求很高的场所。 关于htpp队列,金山有个内部开源HTTPSQL,把队列从mysql移到内存数据库中,并有一个专门的进程负责队列的操作,客户端则通过socket请求进行读写。 另外还有一个轻量级的基于内存的消息队列ZeroMQ,此队列是通过API来实现消息的传输。

mysql瓶颈的应对措施

mysql本身是存在瓶颈的,当数据量达到千万级别以上,无论mysql如何优化,其性能都显著降低(有专门团队开发并改进mysql的除外)。 那么就有以下几种办法解决。
1.增加mysql配置中buffer和cache的数值,增加服务器cpu数量和内存大小。
2.使用第三方引擎或衍生版本。例如:Percona、MariaDB、TokuDB 3.迁移到其他数据库。例如:PostgreSQL、Oracle

有关mysql优化的准则

前辈们总结的经验,学习、学习。

1.尽量避免在列上进行运算,这样会导致索引失效。

例如:SELECT FROM t WHERE YEAR(d) >=2011; 优化为:SELECT FROM t WHERE d >=’2011-01-01’;

2.使用JOIN时,应该用小结果集驱动大结果集。

同时把复杂的JOIN查询拆分成多个QUERY。因为JOIN多个 表时,可能导致更多的锁定和堵塞。 SELECT * FROM a JOIN b ON a.id=b.id LEFT JOIN c ON c.time=a.date LEFT JOIN d ON c.pid=d.aid LEFT JOIN e ON e.cid=a.did