- 博客(195)
- 资源 (4)
- 收藏
- 关注
转载 git .gitignore忽略文件的用法
Git忽略文件.gitignore详解在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。Git 忽略规则优先级在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):从命令行中读取可用的忽略规则当前目录定义的规则父级目录定义的规则,依次递推$GIT_D
2022-12-11 15:22:49
1728
转载 linux如何设置环境变量
Linux的环境变量一、Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1、永久的:需要修改配置文件,变量永久生效。 2、临时的:使用export命令声明即可,变量在关闭shell时失效。二、设置变量的三种方法 1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 例如:编辑/etc/profile文件,添加CLAS
2021-07-04 03:03:09
15765
转载 docker php安装扩展
Docker php安装扩展步骤详解前言此篇,主要是演示docker-php-source , docker-php-ext-install ,docker-php-enable-docker-configure 这四个命令到底是用来干嘛的,它们在PHP容器中都做了哪些事情。很多人很不理解在Dockerfile中安装PHP扩展的时候总是出现这几个命令,本篇就就是为你揭开这些命令的神秘面纱而准备的,所有案例都是本人自己运行过的。Docker 中的PHP容器安装扩展的方式有通过pecl方式安装通过p
2021-05-29 23:13:31
487
原创 适配器模式
适配器模式.jpg介绍1.1 模式说明定义一个包装类,用于包装不兼容接口的对象包装类 = 适配器Adapter;被包装对象 = 适配者Adaptee = 被适配的类1.2 主要作用把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式的形式分为:类的适配器模式 & 对象的适配器模式1.3 解决的问题原本由于接口不兼容而不能一起工作的那些类可以在一起工作模式原理2.1 类的适配器模式类的适配器模式是把适配的类
2021-05-28 23:02:19
199
转载 设计模式-观察者模式
简说设计模式——观察者模式一、什么是观察者模式 观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。再比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。 对于观察者模式而言,肯定有观察者和被观察者之分。比如在一个目录下建立一个文件,这时系统会通知目录管理器增加目录,并通知磁盘减少空间,在这里,文件就是观察者,目录管理器和磁盘就.
2021-05-27 21:17:58
93
转载 分布式事务六种解决方案
分布式事务六种解决方案前言事务想必大家并不陌生,至于什么是 ACID,也是老生常谈了。不过暖男为了保证文章的完整性确保所有人都听得懂,我还是得先说说 ACID,然后再来介绍下什么是分布式事务和常见的分布式事务包括 2PC、3PC、TCC、本地消息表、消息事务、最大努力通知。事务严格意义上的事务实现应该是具备原子性、一致性、隔离性和持久性,简称 ACID。原子性(Atomicity),可以理解为一个事务内的所有操作要么都执行,要么都不执行。 一致性(Consistenc...
2021-05-06 06:23:02
402
1
转载 TCC分布式事务原理
之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务。首先说一下,这里可能会牵扯到一些 Spring Cloud 的原理,如果有不太清楚的同学,可以参考之前的文章:《拜托,面试请不要再问我Spring Cloud底层原理!》。业务场景介绍#咱们先来看看业务场景,假设你现在有一个电商系统
2021-05-06 06:00:04
267
转载 redis加锁的几种实现方法
redis加锁1. redis加锁分类redis能用的的加锁命令分表是INCR、SETNX、SET2. 第一种锁命令INCR这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。然后其它用户在执行 INCR 操作进行加一时,如果返回的数大于 1 ,说明这个锁正在被使用当中。 客户端A请求服务器获取key的值为1表示获取了锁 客户端B也去请求服务器获取key的值为2表示获取锁失败 客户端A执行...
2021-05-06 04:51:12
2315
转载 高并发场景下的订单和库存处理方案
高并发场景下的订单和库存处理方案前言之前一直有小伙伴私信我问我高并发场景下的订单和库存处理方案,我最近也是因为加班的原因比较忙,就一直没来得及回复。今天好不容易闲了下来想了想不如写篇文章把这些都列出来的,让大家都能学习到,说一千道一万都不如满满的干货来的实在,干货都下面了!介绍前提:分布式系统,高并发场景商品A只有100库存,现在有1000或者更多的用户购买。如何保证库存在高并发的场景下是安全的。预期结果:1.不超卖 2.不少卖 3.下单响应快 4.用户体验好下单思路:下单时
2021-05-06 03:01:42
3872
2
转载 Redis默认最大内存是如何处理的?
Redis默认最大内存处理原理前言最近研究redis配置时,看到很reids.conf配置文件中maxmemory默认是注释的,就好(闲)奇的查看了一下默认内存的设置。源码 查看github源码:https://github.com/redis/redis 搜索“maxmemory”关键字查到server.c文件(一看就是启动文件)。 /* 检测到当前系统为32位,因为32最大内存为4G,在没有设置maxmemory的时候, * ...
2021-05-06 01:41:55
820
转载 Redis需要设置最大占用内存吗?如果Redis内存使用超出了设置的最大值会怎样?
设置Redis最大占用内存Redis设置最大占用内存,打开redis配置文件,找到如下段落,设置maxmemory参数,maxmemory是bytes字节类型,注意转换。修改如下所示:# In short... if you have slaves attached it is suggested that you set a lower# limit for maxmemory so that there is some free RAM on the system for slave# o
2021-05-06 01:40:17
3366
转载 MySQL分库分表会带来哪些问题?分库分表问题
MySQL分库分表会带来哪些问题?分库分表能有效的环节单机和单库带来的性能瓶颈和压力,突破网络IO、硬件资源、连接数的瓶颈,同时也带来了一些问题。下面将描述这些技术挑战以及对应的解决思路。分库分表能有效的环节单机和单库带来的性能瓶颈和压力,突破网络IO、硬件资源、连接数的瓶颈,同时也带来了一些问题。下面将描述这些技术挑战以及对应的解决思路。1、事务一致性问题分布式事务当更新内容同时分布在不同库中,不可避免会带来跨库事务问题。跨分片事务也是分布式事务,没有简单的方案,一般可使用"XA协议"和"两阶段
2021-04-03 19:28:44
1603
原创 PHP如何把word文档转换为html
方法一: 通过PHPOffice(推荐)1.require phpoffice/phpword /* 通过composer安装 PHPOffice需要科学上网或者用中国镜像:https://www.phpcomposer.com/*/ 2: 安装成功可看到 vendor文件夹 3: 使用方法 : require 'vendor/autoload.php'; $phpWord = \PhpOffice\PhpWord\IOFactory.
2021-03-27 09:59:45
995
原创 Linux下查看CPU型号,内存大小
Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)1 查看CPU1.1 查看CPU个数cat /proc/cpuinfo | grep “physical id” | uniq | wc -l2 uniq命令:删除重复行;wc –l命令:统计行数1.2 查看CPU核数cat /proc/cpuinfo | grep “cpu cores” | uniqcpu cores : 41.3 查看CPU型号cat /proc/cpuinfo | grep ‘model name’ |un
2020-08-16 08:54:09
408
转载 缓存与数据库不一致?
缓存与数据库不一致,咋办?架构师之路_ 2018-07-12 20:08:00 3325 收藏 2版权缓存与数据库的操作时序,不管是《Cache Aside Pattern》中的方案,还是《究竟先操作缓存,还是数据库?》中的方案,都会遇到缓存与数据库不一致的问题。今天聊聊这个问题。一、数据库主从不一致先回顾下,无缓存时,数据库主从不一致问题。640?wx_fmt=png如上图,发生的场景是,写后立刻读:(1)主库一个写请求(主从没同步完成)(2)从库接着一个读请求,读到.
2020-06-16 11:29:16
159
1
转载 分布式数据一致性
由于互联网目前越来越强调分布式架构,如果是交易类系统,面临的将会是分布式事务上的挑战。当然目前有很多开源的分布式事务产品,例如java JTA,但是这种解决方案的成本是非常高的,而且实现起来非常复杂,效率也比较低下。对于极端的情况:例如发布,故障的时候都是没有办法保证强一致性的。 首先,在目前的互联网应用中,我们通过一个比较常见的例子,让大家更深入的了解一下分布式系统设计中关于数据一致性的问题。拿我们经常使用的功能来考虑吧,最近网购比较热门,就以京东为例的,我们来看看京东的一个...
2020-06-15 14:03:39
265
转载 prometheus安装
Prometheus+Grafana+Altermanager监控告警小冯先生 2019-06-13 12:34:34 5000 收藏 14展开参考https://blog.csdn.net/qq_36357820/article/details/80777167https://blog.csdn.net/enweitech/article/details/80896186https://www.cnblogs.com/sfnz/p/6566951.htmlhttps://blog.cs..
2020-06-01 17:39:22
461
转载 错误error while loading shared libraries: xxx.so.x的原因和解决办法
错误"error while loading shared libraries: xxx.so.x" 的原因和解决办法li27z2017-06-17 23:46:427154收藏3展开一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,比如:error while loading shared libraries: libprotobuf.so.9: cannot open shared object file: No such file or direc...
2020-06-01 11:28:14
5484
转载 PHP centos下安装grpc
CENTOS、CPPCentOS7下安装gRPC for CPP2016年7月19日BROLY[版权声明]本站内容采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆 (CC BY-NC-SA 3.0 CN)进行许可。部分内容和资源来自网络,纯学习研究使用。如有侵犯您的权益,请及时联系我,我将尽快处理。如转载请注明来自:Broly的博客,本文链接:CentOS7下安装gRPC for CPPgRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2...
2020-06-01 10:49:20
559
转载 centos7 安装erlang21.3
centos7 安装erlang21.3事在人为2018 2019-04-19 10:01:51 4134 收藏 4展开 安装依赖环境 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel 下载Erlang wget http://erlang.org/download/otp_src_21.3.tar.gz 解压 tar ...
2020-05-31 12:59:18
1692
转载 微服务难点
总结一下:微服务下的几个难点问题及解决方案SingleOneMan 2019-04-02 01:42:58 3247 收藏 9展开总结一下:微服务下的几个难点问题及常见的解决方案文章目录总结一下:微服务下的几个难点问题及常见的解决方案1.接口幂等2.分布式事物3.接口超时4.接口限流环境springboot1.5.9记录一下项目开发和技术研究中遇到的微服务难点,能够解决项目问题的才是适合的,目前能力有限,只能持续迭代开发。1.接口幂等参考:https://cloud...
2020-05-29 13:17:14
743
转载 nginx
当初我要是这么学习Nginx就好了!(多图详解)码农小光关注92020.03.29 00:28:45字数 2,042阅读 11,160以下文章来源于51CTO技术栈 ,作者李航本文主要帮助大家熟悉 Nginx 有哪些应用场景、Nginx 特点和架构模型以及相关流程、Nginx 定制化开发的几种模块分类。读完本文你将对 Nginx 有一定的认识。本文将围绕如下几个部分进行讲解: Nginx 简介及特点 Nginx 应用场景 Nginx 框架模型介绍
2020-05-29 10:43:32
490
转载 TARS-php微服务
伴随着微服务架构的快速发展,各种开发语言各种类型的微服务开发框架陆续出现,在近日举办的 PHPCon 大会上,来自开源微服务框架 TARS 核心开发组的梁晨,为开发者分享了 TARS-PHP 在 TARS 构建微服务生态中扮演的角色。梁晨同时也是 TARS-PHP 项目的主要负责人,以下是本次演讲全程的整理。大家好,接下来 45 分钟的时间,我想跟大家聊聊 TARS 作为微服务平台本身有什么优势,同时也想让大家看到,TARS-PHP 核心开发组在这一年中,不断演进 TARS-PHP,将其融入 PHP 生
2020-05-28 16:28:10
936
转载 php7
php7和PHP5对比的新特性和性能优化fish_study_csdn 2018-05-22 16:37:40 8001 收藏 3展开1 抽象语法树( AST) 1)在 PHP5中,从 php 脚本到 opcodes 的执行的过程是: Lexing:词法扫描分析,将源文件转换成 token 流; Parsing:语法分析,在此阶段生成 op arrays。2)PHP7 中在语法分析阶段不再直接生成 op arrays,而是先生成 AST,所以过程多了一步: ...
2020-05-14 10:30:10
127
转载 WebSocket和Socket的区别
WebSocket和Socket的区别当我们探讨两件事物的区别和联系时,我们想探讨些什么?前段时间写了两篇介绍HTTP和WebSocket的文章,回复中有人说希望了解下WebSocket和Socket的区别。这个问题之前也有想过,自己对此是有大概的答案,可是并不太确定,于是去搜集了些资料(其实就是各种Google),看了很多以前的文档,觉得有些故事十分有趣,整理如下,算是一个外传。文中图片全来自Google图片搜索,如侵删。短答案就像Java和JavaScript,并没有什么太.
2020-05-12 00:48:37
845
转载 多进程、多线程、协程
快速理解多进程与多线程以及协程的使用场合和特点首先我们来了解下python中的进程,线程以及协程!从计算机硬件角度:计算机的核心是CPU,承担了所有的计算任务。一个CPU,在一个时间切片里只能运行一个程序。从操作系统的角度:进程和线程,都是一种CPU的执行单元。进程:表示一个程序的上下文执行活动(打开、执行、保存...)线程:进程执行程序时候的最小调度单位(执行a,执行b...)一个程序至少有一个进程,一个进程至少有一个线程。并行 和 并发:并行...
2020-05-11 23:22:41
260
转载 Mysql group by
mysql group by底层原理 参考地址:https://www.cnblogs.com/bonelee/p/6359250.html 参考地址:https://blog.csdn.net/xtdhqdhq/article/details/18408905 由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作。当然,如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数的计算。所以,...
2020-05-10 22:13:16
360
转载 MySQL中group by 与 order by 一起使用排序问题
MySQL中group by 与 order by 一起使用排序问题假设有一个表:reward(奖励表),表结构如下: CREATE TABLE test.reward ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) NOT NULL COMMENT '用户uid', money decimal(10, 2) NOT NULL COMMENT '奖励金额', datatime datetime ...
2020-05-10 22:06:13
1782
转载 Mysql order by与limit混用陷阱
Mysql order by与limit混用陷阱在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。比如现在有一张user表,表结构及数据如下:表结构表数据现在想根据创建时间升序查询user表,并且分页查询,每页2条,那很容易写出sq.
2020-05-10 21:32:16
153
转载 Mysql join原理
MySQL JOIN原理先看一下实验的两张表:表comments,总行数28856表comments_for,总行数57,comments_id是有索引的,ID列为主键。以上两张表是我们测试的基础,然后看一下索引,comments_for这个表comments_id是有索引的,ID为主键。最近被公司某一开发问道JOIN了MySQL JOIN的问题,细数之下发下我对MySQL JOIN的理解并不是很深刻,所以也查看了很多文档,最后在InsideMySQL公众号看到了两篇关于JOIN
2020-05-10 20:38:27
158
转载 Mysql 分页语句 Limit原理
Mysql 分页语句 Limit原理(1)、Mysql的limit用法在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定...
2020-05-10 20:29:20
1367
转载 mysql -存储过程
MySQL 存储过程分类 编程技术MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。优点存储过程可封装,并隐藏复杂的商业逻辑。 存储过程可以回传值,并可以接受参数。 存储过程无.
2020-05-10 18:06:44
225
转载 分析存储过程的使用场景及其优缺点
分析存储过程的使用场景及其优缺点分析存储过程的使用场景 当 一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对 多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。为了系统的控制方便,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更改客户端程序。也无需重新安装客户端应用程序。存储过程不仅仅适用于大型项目,对于中小型项...
2020-05-10 16:59:31
1152
转载 Mysql-触发器及创建触发器失败原因
Q:什么是触发器?A: 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的特性: 1、有begin end体,begin end;之间的语句可以写的简单或者复杂 2、什么条件会触发:I、D、U 3、什么时候触发:在增删改前或者后 4、触发频率:针对每一行执行 5、触发器定义在表上,附着在表上。也就是由事件来触发某个操作,事件包括INSERT语句,UPDATE语句和DELETE语句;可以协助应用在数据库端确保数据的完整
2020-05-10 16:25:56
4999
转载 mysql 视图,视图更新删除
1、创建视图2、查看视图3、视图的更改 1、create or replace view 2、alter 3、DML 4、drop4、使用with check option约束 嵌套视图5、定义视图时的其他选项:algorithm、definer、SQL security视图权限6、视图查询语句的处理 1、替代方法 2、具体化方法Q:什么是视图?视图是干什么用的?A: 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包.
2020-05-10 15:23:14
1106
原创 PHP-算法-最少比较次数获取最大值最小值
<?php//获取最大、最小function getMinMax($arr){ $n = count($arr); if ($n ==1 ) return [$arr[0],$arr[0]]; //最小、最大 //初始化最大、最小 if ($n > 1) { if ($arr[0]>$arr[1]) { $max = $arr[0]; $min = $arr[1];.
2020-05-10 09:07:14
1038
原创 php-数据结构-二叉树的构建、前序遍历,中序遍历,后序遍历,查找,打印
<?php/*** 结点*/class Node{ public $data; //结点数据 public $left; //左孩子 public $right; //右孩子 public function __construct($data, $left=null, $right=null) { $this->data = $data; $this->left = $left; $this->r...
2020-05-09 19:22:54
163
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人