自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mac 安装 brew

8、显示了版本,表示安装成功了,但是出现了两个fatal,别急,仔细看提示:homebrew-core和homebrew-cask目录 被git认为不是一个安全的目录,需要两行命令添加。3、选择下载源,这里我选择的是4(腾讯下载源),在下一步说到brew首次安装的问题了,第一步已经确认了,所以就不用备份了,这里我选择的Y。1、首先在终端执行brew --version,主要是为了查看brew的版本,也可以验证brew是否安装。5、Brew本体安装成功,选择国内镜项,这里我依然选择4(腾讯国内源)

2023-03-04 13:44:34 2122

原创 Apache 配置常见问题

1、跨域配置<IfModule mod_rewrite.c> Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Headers: "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding" He

2023-03-04 13:27:45 234

原创 CentOS yum 安装MySQL5.7

CentOS yum 安装MySQL5.7

2022-12-12 11:57:26 738

原创 centos yum方式安装PHP74

centos yum方式安装PHP74

2022-12-12 11:24:58 1242

原创 Nginx 配置常见问题

1、配置跨域location / { if ($request_method = OPTIONS ) { add_header Access-Control-Allow-Origin "*"; add_header Access-Control-Allow-Methods "*"; add_header Access-Control-Allow-Headers "X-Reques

2022-05-08 18:03:59 164

转载 MySQL锁详解

数据库锁知识不少人在开发的时候,应该很少会注意到这些锁的问题,也很少会给程序加锁(除了库存这些对数量准确性要求极高的情况下),即使我们不会这些锁知识,我们的程序在一般情况下还是可以跑得好好的。因为这些锁数据库隐式帮我们加了,只会在某些特定的场景下才需要手动加锁。对于UPDATE、DELETE、INSERT语句,InnoDB会自动给涉及数据集加排他锁(X) MyISAM在执行查询语句SELECT前,会自动给涉及的所有表加读锁,在执行增、删、改操作前,会自动给涉及的表加写锁,这个过程并不需...

2022-03-22 12:59:49 4553

转载 k8s系统架构图

1、Master和Node1)、MasterK8S中的Master是集群控制节点,负责整个集群的管理和控制在Master上运行着以下关键进程:kube-apiserver:提供了HTTP Rest接口的关键服务进程,是K8S里所有资源的增删改查等操作的唯一入口,也是集群控制的入口进程 kube-controller-manager:K8S里所有资源对象的自动化控制中心,集群内各种资源Controller的核心管理者,针对每一种资源都有相应的Controller,保证其下管理的每个Con

2021-10-20 18:02:44 1246

原创 mysql实现分组查询每个班级的前三名

1、创建表drop table student;create table student( id varchar(20),-- 编号 class varchar(20),-- 年级 score int-- 分数);2、创建测试数据delete from student;insert student values('1','一年级',82);insert student values('2','一年级',95);insert student valu...

2021-06-28 11:39:02 1011

转载 MySQL死锁及解决方案

一、MySQL锁类型1.MySQL常用存储引擎的锁机制MyISAM和MEMORY采用表级锁(table-level locking)BDB采用页面锁(page-level locking)或表级锁,默认为页面锁InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁2.各种锁特点表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高页面..

2021-06-28 11:15:33 1134

原创 PHP 实现布隆过滤器

场景:爬虫抓取有500亿个URL的网站,怎么更节省资源做到每天不重复抓取就还需要想办法压缩URL的内存占用,可以使用BloomFilter算法,是一个很经典的算法,非常适用海量数据的排重过滤,占用极少的内存,查询效率也非常的高。它的原理是把一个字符串映射到一个bit上,刚才23402373占8个字节,现在只占用1个bit(1字节=8bit),内存节省了近64倍,以前700M内存,现在只需要10多M了。布隆过滤器的原理可以参考这里,非常详细:http://imhuchao.com/1271.htm

2021-06-25 23:04:06 1272

转载 REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案

一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问

2021-06-25 19:29:18 96

转载 使用Redis的有序集合实现排行榜功能

游戏中存在各种各样的排行榜,比如玩家的等级排名、分数排名等。玩家在排行榜中的名次是其实力的象征,位于榜单前列的玩家在虚拟世界中拥有无尚荣耀,所以名次也就成了核心玩家的追求目标。一个典型的游戏排行榜包括以下常见功能:能够记录每个玩家的分数; 能够对玩家的分数进行更新; 能够查询每个玩家的分数和名次; 能够按名次查询排名前N名的玩家; 能够查询排在指定玩家前后M名的玩家。更进一步,上面的操作都需要在短时间内实时完成,这样才能最大程度发挥排行榜的效用。由于一个玩家名次上升x位将会引起x+1位

2021-06-24 11:40:35 370

原创 PHP实现链表两数相加

/** * 定义一个单链表 */class ListNode { public $val = 0; public $next = null; function __construct($val) { $this->val = $val; }}/** * 实现两数相加 * * @param ListNode $l1 * @param ListNode $l2 * @return ListNode */functio...

2021-06-18 12:31:07 184

原创 MySQL事务隔离级别

一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。  2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。   3、隔离性(Isolation):同一时间,只允许一个事务请求同.

2021-06-09 21:27:16 100

转载 分布式锁的几种实现方式

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。在很

2021-06-07 22:08:40 119

转载 B+Tree 介绍与在 Mysql 中的应用

1、B树简绍B 树又称平衡多路查找树。1.1、用阶来描述 B 树一个 m 阶的 B 树具有一下特点:1 每个结点最多包含 m 个子节点;2 除根节点外,每个分支结点至少有 ceil(m/2) 个子节点;3 根结点若非叶子结点,则至少 2 个子节点;4 所有叶子结点都出现在同一层;5 有 n 个子结点的非叶子结点恰好有 n - 1 个关键字,关键字按递增顺序排序。1.2、用图片描述 B 树下图是一个 4 阶的 B 树4 阶 B 树下图是一个 3 阶的 B 树.

2021-06-07 12:24:30 123

转载 MySQL索引面试问题

转载:https://mp.weixin.qq.com/s/_bk2JVOm2SkXfdcvki6-0w本文来自一位不愿意透露姓名的粉丝投稿,由Hollis整理并"还原"了面试现场。相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我

2021-06-07 10:48:24 123

原创 PHP-FPM的三种模式和worker进程、master进程详解

一:首先介绍PHP-FPM 的三种模式首先看php配置文件中的说明。(1)pm=static  始终保持固定数量的worker进程数,由pm.max_children决定,不会动态扩容。  配置项要求  1、pm.max_children> 0 必须配置,且只有这一个参数生效  优缺点  如果配置成static,只需要考虑max_children的数量,数量取决于cpu的个数和应用的响应时间,(2)pm=dynamic  php-fpm启动时,会...

2021-06-06 22:39:43 594 2

原创 cgi、fast-cgi、php-fpm 的区别

一、cgi(Common Gateway Interface、通用网关接口):早期的web服务器只能处理html等静态文件,但是随着技术的发展,出现了像java、php等动态语言。 web服务器处理不了,只能交给对应语言的解释器来处理,比如java或php的解释器。但是解释器如何与web服务器进行通信呢?为了解决不同的语言解释器(如java、php解释器)与web服务器通信,于是出现了cgi协议。只要按照cgi协议去编写程序,就能实现各语言解释器与web服务器的通信,比如php-cgi。...

2021-06-06 21:34:44 372

转载 基于浏览器一次完整的http请求流程

当我们在web浏览器的地址栏中输入: www.baidu.com,然后回车,到底发生了什么?过程概览1.URL解析/DNS解析查找域名IP地址2.网络连接发起HTTP请求3.HTTP报文传输过程4.服务器接收数据5.服务器响应请求/MVC6.服务器返回数据7.客户端接收数据8.浏览器加载/渲染页面下面我们来详细看看这几个过程的具体细节1.URL解析/DNS解析查找域名IP地址*URL解析输入 URL 「回车」后,这时浏览器会对 URL 进行检查,浏览器对

2021-06-06 21:28:32 825

原创 linux crontab 说明

基本格式 :*  *  *  *  *  command分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令crontab文件的一些例子:30 21 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每晚的21:30重启apache。45 4 1,10,22...

2021-06-06 16:22:47 81

转载 CentOS 7 编译安装PHP7.1

1.下载php7?1wget http://cn2.php.net/distributions/php-7.1.14.tar.gz2.解压php7?1tar -zxvf php-7.1.14.tar.gz3.进入php目录?1cd php-7.1.144.安装依赖包?1yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzi...

2018-03-01 23:04:33 1549

转载 MySQL 5.7.12 源码编译安装

环境准备:      mysql 安装包:mysql-boost-5.7.12.tar.gz     系统版本:CentOS Linux release 7.2.1511 (Core) 一 清理环境      yum list installed *mysql*     yum remove installed *mysql* 二 创建mysql组和用户         groupadd mysq...

2018-03-01 16:02:24 519

转载 Flume+kafka的环境配置与使用

好久没有写分享了,继前一个系列进行了Kafka源码分享之后,接下来进行Flume源码分析系列,望大家继续关注,今天先进行开篇文章Flume+kafka的环境配置与使用。一、FLUME介绍Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。设计目标:(1) 可靠性当节点...

2018-02-27 19:21:42 453

转载 yii2.0归档安装方法

Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架。Yii自带了丰富的功能 ,包括MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。2.0.0版本发布于2014年10月12日。下面介绍一下Yii2.0 basic模板和高级(advanced)模板的安装。要点:php 必须是5.4版本以上 (建议用phps

2018-01-19 17:40:57 396

转载 使用ngx_lua构建高并发应用(1)

一. 概述        Nginx是一个高性能,支持高并发的,轻量级的web服务器。目前,Apache依然web服务器中的老大,但是在全球前1000大的web服务器中,Nginx的份额为22.4%。Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,这样可以将

2018-01-18 19:22:01 187

原创 awk 分析nginx日志常用命令

响应时间大于5秒,降序排序awk -F "\"" '$8 > 5 || $1 == "182.140.237.207" {print $8}' test.log | sort -rIP出现次数最多,降序排列cat test.log| awk '{a[$1]++} END {for(b in a) print b":"a[b]}' | head -n 10 | sort -t ':' -

2018-01-15 20:17:35 1400

转载 awk分析nginx日志中响应时间的方法

针对响应时间慢的问题,我们在nginx日志格式中增加响应时间,现在需要针对响应时间进行分析,查找出相对较慢的响应时间。 1、确认下日志文件格式 日志格式:log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $bod

2018-01-04 20:06:32 6446

转载 Linux AWK 命令

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。语法awk [选项参数] 'script' var=value file(s)或awk [选项参数] -f scriptfile var=value f

2018-01-04 19:48:14 131

转载 Nginx原理和php+fastcgi的关系

一、用户对动态PHP网页访问过程用户浏览器发起对网页的访问:http://192.168.1.103/index.php用户和nginx服务器进行三次握手进行TCP连接(忽略包括nginx访问控制策略、nginx防火墙等访问控制策略)第一步:用户将http请求发送给nginx服务器第二步:nginx会根据用户访问的URI和后缀对请求进行判断1.例如用户访问的index.php,nginx则会根据配

2017-12-28 17:37:47 272

转载 PHP内存管理机制与垃圾回收机制

PHP内存管理机制1 var_dump(memory_get_usage()); //获取内存2 $a = "laruence"; //定义一个变量3 var_dump(memory_get_usage()); //定义变量之后获取内存4 unset($a); //删除该变量5 var_dump(memory_

2017-12-28 14:39:41 142

转载 深入理解PHP的运行模式

PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli  命令行运行   (Command Line Interface)4)web模块模式 (apache等web服务器运行1.CGI(Common Gateway Interface)  CGI即通用网关接口(Common

2017-12-28 14:34:01 142

转载 PHP性能调优---PHP-FPM配置及使用总结

PHP-FPM是一个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch到PHP源代码中,然后再行编译才能使用。而现在我们可以在PHP 5.3.2及更新版本中直接开启并使用即可,因为PHP从该版本已经将其收入到软件包中,所以其不再是补丁包的存在了。 ·     几个概念的理解·     Nginx+PHP配置·  

2017-12-27 20:25:31 754

转载 MySQL索引原理及慢查询优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问

2017-12-26 19:07:05 118

转载 MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主

2017-12-26 14:48:13 158

空空如也

空空如也

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

TA关注的人

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