自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(359)
  • 收藏
  • 关注

原创 Go 双链表 接收者是值类型好,还是指针类型好

双链表

2023-01-28 16:42:53 285 1

原创 vscode 安装

vscode 安装

2022-08-19 11:17:17 242

原创 CentOS cannot find a valid baseurl for repo base/7/x86_64

/etc/sysconfig/network-scripts/ifcfg-ens33配置好重启网卡,命令service network restartping网关,看能否ping得通,如果ping不同则检查所填的信息是否有问题。ping的通本机的网络没有问题了。ping www.baidu.comyum install upgradeyum install net-tools...

2021-05-31 00:33:15 305

原创 AMQP 讲解

三、常规消息队列的流程跟特点MQ队列消息模型的特点队列消息模型的特点:1、消息生产者将消息发送到Queue中,然后消息消费者监听Queue并接收消息;2、消息被确认消费以后,就会从Queue中删除,所以消息消费者不会消费到已经被消费的消息;3、Queue支持存在多个消费者,但是对某一个消息而言,只会有一个消费者成功消费。3.1、MQ队列消息的生产与消费常规流程常用的MQ中间件产品 ActiveMQ、RabbitMQ、kafka等基本都是这样的流程基于AMQP协议① Producer生成消

2021-05-23 11:54:30 473 3

原创 php array_merge和+区别

对于+,当key相同时,不管key是字符还是数组,都是舍弃后面的结果;array_merge ,当key相同时,key是字符,则后面的覆盖前面的;key是数字,则不发生覆盖,会重新建立数组索引。<?php$arr1 = array('a'=>'PHP');$arr2 = array('a'=>'JAVA');//如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值print_r(array_merge($arr1,$arr2)); //Ar.

2021-05-10 23:14:21 313

原创 php 类名和方法名相同(构造函数)

//php 5.6class father{public function __construct() {  echo __METHOD__;  }}class son extends father{//public function __construct() {  // parent::__construct();  // echo __METHOD__;//}//方法名同类名相同如果没有__construct,会被当做构造函数。如果被当做构造函数,没有parent::__co

2021-05-06 23:23:01 284

原创 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe

ERROR 1290 HY000: The MySQL server is running with the --skip-grant-tables option so it cannot exe找不到初始密码可以在my.ini中[mysqld] 添加:修改MySQL数据库配置文件无密码登录后,修改密码报错:先执行:再执行修改密码命令找不到初始密码可以在my.ini中[mysqld] 添加:skip-grant-tables修改MySQL数据库配置文件无密码登录后,修改密码报错:ERROR 1290

2021-02-07 10:06:10 470

原创 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

@[TOC](ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES))进入 my.cnf[root@bogon ~]# find / -name my.cnf在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:skip-grant-tables重启[root@bogon ~]# /etc/init.d/mysql restar

2021-02-07 09:43:16 356 1

原创 swoft Bean容器

Bean容器容器是什么?为什么使用Bean容器?Bean容器注解@Bean@Inject定义bean数组定义注解定义操作Bean实例容器是什么?相信很多人听说过依赖注入,依赖注入实现的基础条件离不开容器,容器就是用来管理类依赖和注入的,负责服务的管理和解耦组件,最简单的理解我们可以把容器理解成一个超级大、专门存对象的数组。为什么使用Bean容器?传统的PHP框架没有常驻内存,因此每次请求进来都需要把所有用到的类实例化一次,每次实例化对象都需要申请内存,当请求处理完成之后又需要释放,这样不断的申请和

2021-02-04 17:22:33 272

原创 php SoapClient 调用 webservices 和 可以在WSDL或非WSDL模式下使用

SoapClient类为»SOAP 1.1和»SOAP 1.2服务器提供了一个客户端。可以在WSDL或非WSDL模式下使用。SoapClient {/* Methods */public __construct ( string|null $wsdl , array $options = [] )public __call ( string $name , array $args ) : mixedpublic __doRequest ( string $request , string $loc

2021-02-04 10:11:19 507

原创 swoft request请求

swoft request请求获取 request 对象通过控制方法参数注入的方式通过请求上下文获取获取请求数据获取请求 method获取请求的 uri获取请求 headers获取 get 数据获取 post 数据获取 get & post 数据获取上传文件其它的方法获取 request 对象通过控制方法参数注入的方式<?php declare(strict_types=1); namespace app\Http\Controller; use Sw

2021-02-04 09:56:46 350

原创 swoft response

swoole编程注意事项响应对象 response响应对象 response 的获取返回响应信息设置状态码输出字符串输出数组输出头信息重定向文件下载设置 cookie其他方法响应对象 response响应对象 Response 为 Swoft\Http\Message\Response查看 response 对象源码,文件路径为 vendor/swoft/http-message/src/Response.phpclass Response implements ResponseInterface

2021-02-04 09:47:00 218

原创 swoft 控制器

新建控制器,在 /app/Http/Controller/文件夹下新建文件 IndexController.php/** * Class IndexController * @package App\Http\Controller * @Controller(prefix="/apidemo") */class IndexController{ /** * @RequestMapping("index",method={RequestMethod::GET}) *.

2021-02-04 09:22:51 230

原创 SNMP协议详解

SNMP协议详解简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议。在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案;由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能。现在,已经有了SNMPv3版本。...

2021-01-27 11:47:24 8681

转载 使用HOST-RESOURCES-MIB和RFC1213-MIB通过SNMP管理服务器

HOST-RESOURCES-MIB主要包括:hrSystem:主要包括系统启动时间、当前进程数、最大支持进程数等等。hrstorage:主要包括物理内存大小,各个分区、虚拟内存的大小和使用情况hrdevice:硬件设备情况、每个cpu的负载情况等hrswrun:操作系统类型的标志、进程列表(进程的状态、名字、路径、参数等)hrSWRunPerf:每个进程占用的内存、以及占用的CPU时间(累计)hrSWinstalled:系统安装的软件信息RFC1213MIB主要包括(跟服务器相关的):.i

2021-01-26 15:59:21 800

原创 Mysql 远程定时备份数据

Mysql远程定时备份数据前提条件:开始备份创建备份路径创建备份脚本写入shell:实例:创建定时任务安装 crontab加入计划任务查看计划任务是否执行:在backup.sh中加入下面语句:前提条件:首先在备份机上安装mysql的客户端,或者直接安装mysql也可以。开始备份创建备份路径mkdir /data/backup/test/创建备份脚本vim baup.sh写入shell:mysqldump -h 需要备份数据库所在机器ip -u用户名 -p密码 备份的数据库名 --opt

2021-01-15 11:24:15 328 1

转载 nginx 解决504超时问题

问题发现最近在做文件解析服务的压测,发现jmeter 基本有所有的错误反馈都是504,大概有1%左右的请求报504。由于文件解析服务耗时相对比较长,所以导致等待超时。分析nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。通常有以下几种情况导致程序在处理大量数据,导致等待超时。程序中调用外部请求,而外部请求响应超时。连接数据库失败而没有停止,死循环重新连。出现这

2021-01-15 11:14:10 1341

转载 CentOS7 时间同步

安装ntp服务的软件包sudo yum install ntp将ntp服务设置为缺省启动systemctl enable ntpd修改启动参数,增加-g -x参数,允许ntp服务在系统时间误差较大时也能正常工作sudo vi /etc/sysconfig/ntpd启动ntp服务sudo service ntpd restart将系统时区改为上海时间 (亦即CST时区)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime查

2021-01-15 11:10:11 117 1

原创 Mysql MVCC原理实现及事务隔离

在实现上, InnoDB 为每个事务构造了一个数组,用来保存这个事务启动瞬间,当前正在“活跃”的所有事务 ID。“活跃”指的就是,启动了但还没提交。数组里面事务 ID 的最小值记为低水位,当前系统里面已经创建过的事务 ID 的最大值加 1 记为高水位。这个视图数组和高水位,就组成了当前事务的一致性视图(read-view)。如果落在绿色部分,表示这个版本是已提交的事务或者是当前事务自己生成的,这个数据是可见的;如果落在红色部分,表示这个版本是由将来启动的事务生成的,是肯定不可见的;如果落在黄色

2020-12-30 10:23:31 536

原创 redis watch+事务 乐观锁

我们都知道 redis 的 分布式锁是一个悲观锁,提供了很好的并发解决方案;但更好的方式是使用watch命令来监控一个值是否变化,如果值发生改变,exec执行的命令将会返回null,故watch 命令是一个乐观锁的解决方案;127.0.0.1:6379> set s3 oooOK127.0.0.1:6379> watch s3OK127.0.0.1:6379> set s3 555 # 修改了变量 数量减库 -1OK127.0.0.1:6379> multiOK1

2020-12-25 15:20:42 167

原创 服务器日志分析命令

服务器日志分析命令

2020-12-23 11:58:12 403

原创 跳表:为什么Redis一定要用跳表来实现有序集合?

跳表因为二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现如果数据存储在链表中,就真的没法用二分查找算法了吗?我们只需要对链表稍加改造,就可以支持类似“二分”的查找算法。我们把改造之后的数据结构叫做跳表(Skip list)如何理解“跳表”?因为二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现如果数据存储在链表中,就真的没法用二分查找算法了吗?我们只需要对链表稍加改造,就可以支持类似“二分”的查找算法。我们把改造之后的数据结构叫做跳表(Skip list)但是它确实是一种各方面

2020-12-22 17:28:22 170

原创 普通索引和唯一索引,应该怎么选择

在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号查询过程假设,执行查询的语句是 select id from T where k=5。这个查询语句在索引树上查找的过程,先是通过 B+ 树从树根开始,按层搜索到叶子节点,也就是图中右下角的这个数据页,然后可以认为数据页内部通过二分法来定位记录。对于普通索引来说,查找到满足条件的第一个记录 (5,500

2020-12-21 10:24:04 156

转载 什么是CPU密集型、IO密集型?

CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound

2020-12-20 00:11:07 132 1

原创 php 单例模式

在面向对象中,一个对象只负责一个特定的任务通常是一种很好的选择。例如:你只想让一个对象去访问数据库。单例模式是一种职责模式,他将创建的对象委托到一个单一的访问点上。在任何时候,应用程序中都只有这个类仅有的一个实例存在。这可以防止我们去打开数据库的多个连接或者不必要使用多余的系统资源。在更加复杂的系统中,使用单例模式在维持应用程序状态同步方面也尤为重要。PS:同步一般是对于语言多线程方面的应用,P...

2020-12-17 00:41:39 147

原创 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?

设计原则面向对象设计原则设计模式1. 创建型2. 结构型行为型编程规范代码重构五者之间的联系重点回顾面向对象面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式编码实现的基础。面向对象的四大特性:封装、抽象、继承、多态面向对象编程与面向过程编程的区别和联系面向对象分析、面向对象设计、面向对象编程接口和抽象类的区别以及各自的应用场景基于接口而非实现编程的设计思想多用组合少用继承的设计思想面向过程的贫血模型和面向对象的充血模型设计原

2020-12-16 09:30:53 186

原创 数组 为什么很多编程语言中数组都从0开始编号?

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。

2020-12-16 09:28:03 190

原创 php 二位数组去重

二维数组去掉重复值$array2D = array(array('whitename' => 'dsfsdfsdfs', 'whitepaas' => 42342352),array('whitename' => 'lss_ni321', 'whitepaas' => 124623),array('whitename' => '[email protected]', 'whitepaas' => 12775566),array('whitename' =>

2020-12-03 14:48:55 166

原创 php 时间转换成秒数 或者做倒計時

<?php//自定义函数:time2string($second) 输入秒数换算成多少天/多少小时/多少分/多少秒的字符串function time2string($second){ $day = floor($second/(3600*24)); $second = $second%(3600*24);//除去整天之后剩余的时间 $hour = floor($second/3600); $second = $second%3600;//除去整小时之后剩余的时间 $minute = f

2020-11-26 10:34:47 904

原创 PHP合并数组几种方式总结及数组去重

https://blog.csdn.net/PHPArchitect/article/details/91437669$a = array('1001','1002'); $b = array('1002','1003','1004'); $c = array('1003','1004','1005'); $d = array_keys(array_flip($a) + array_flip($b) + array_flip($c));

2020-11-26 10:34:13 522

原创 Nginx 的进程模型 并发处理真强

Nginx 的进程模型 并发处理真强Nginx 服务器,正常运行过程中:思考Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗Nginx 服务器,正常运行过程中:多进程: 一个 Master 进程、多个 Worker 进程。Master 进程: 管理 Worker进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;监控: 监控 Worker进程的运行状态,Worker 进程异常终止后,自动重启 Worker 进程。Worker 进

2020-11-22 14:58:51 202

原创 array_walk array_map array_filter

array_map

2020-11-18 10:59:35 181

原创 laravel orwhere union all 查询统计分页sql語句

union allunion all查询统计总数量分表后多表,UNION 和UNION ALL查询分页union all查询统计总数量select sum(a.b) as num from (select count( ) as b from table_1 union all select count( ) as b from table_2) as a(注意这里要取个别名)分表后多表,UNION 和UNION ALL查询分页UNION ALL和 UNION 的区别UNION AL

2020-11-17 11:41:17 985

原创 分布式与集群有什么区别?

PHP 反射机制 分布式集群例如:分布式:解决集群:提高换个方式理解分布式分布式可繁也可以简,最简单的分布式就是大家最常用的,在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态,后面共享一个数据库,其实很多号称分布式专家的人也就停留于此,大致结构如下图所示:这种环境下真正进行分布式的只是web server而已,并且web server之间没有任何联系,所以结构和实现都非常简单。有些情况下,对分布式的需求就没这么简单,在每个环节上都有分布式的需求,比如Load Bala

2020-11-08 23:29:44 222

原创 PHPExcel 详解

PHPExcel 下载PHPExcel插件慕课网学习文件格式 Excel2007

2020-10-28 00:17:41 3712

转载 Python 将数据写入文件(txt、csv、excel)

一、将列表数据写入txt、csv、excel1、写入txtdef text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表. file = open(filename,'a') for i in range(len(data)): s = str(data[i]).replace('[','').re...

2020-10-27 11:21:12 964

原创 Docker最新安装Nginx快速上手(教程全面讲解)

@TOC1、稳定性极强 7*24小时不间断运行2、Nginx提供了非常丰富的配置实例3、占用内存小,并发能力强 最高能承受 5万以上

2020-10-27 11:17:17 594

原创 GIT 详细命令介绍

git初始化仓库初始化仓库

2020-10-27 00:03:51 710

原创 laravel updateOrCreate与updateOrInsert 的区别

updateOrCreate() 和 updateOrInsert() 两个方法都是用来保存数据的时候方便操作“ 存在即更新,反之则创建 ”的updateOrCreate 方法使用的是 Eloquent ORM 操作的数据库(支持自动添加创建和更新时间)updateOrInsert 方法使用的是查询构造器(不可以自动添加创建和更新时间)updateOrCreate 返回值是\Illuminate\Database\Eloquent\Model, updateOrInsert 返回的是 bool。可以看

2020-10-23 18:08:24 3352

原创 php 闭包函数 instanceof Closure

PHP 闭包实现主要就是靠匿名函数将匿名函数在普通函数中当做参数传入,也可以被返回,这就是实现了一个简单的闭包通俗的说: 子函数可以使用父函数中的局部变量,这种行为就叫做闭包闭包的两个特点作为一个函数变量的一个引用。当函数返回时,其处于激活状态一个闭包就是当一个函数返回时,一个没有释放资源的栈区其实上面两个点可以合成一个点,就是闭包函数返回时,该函数内部变量处于激活状态,函数所在栈...

2020-10-22 18:28:01 1773 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除