自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wuhuagu_wuhuaguo的博客

每一个你不满意的当下,都有一个你不曾努力的过去

  • 博客(316)
  • 资源 (2)
  • 收藏
  • 关注

转载 小白docker入门碎碎念

一、简介1、docker与虚拟机的对比: 特性 Docker 虚拟机 启动速度 秒级 分钟级 交付/部署 开发、测试、生产环境一致 无成熟体系 性能 近似物理机 性能损耗大 体量 极小(MB) 较大(GB) 迁...

2020-04-30 21:36:48 261

转载 Laravel中的控制反转+依赖注入+依赖反转+反射+容器+服务提供者+门面

1、控制反转(IoC): 不需要自己内容修改,改成由外部传递。从依赖内部改为依赖外部。2、依赖注入(DI):不是由自己内部new对象或者实例,而是通过构造函数或方法传入调用其他类的都属于依赖注入 。 原始代码 控制反转和依赖注入 左边的问题:...

2020-04-20 16:56:03 1435 1

原创 开发机安装celery和redis教程

===============开发机安装celery和redis教程输入python,然后tab回车,只看到了python,python2,python2.7,没有python31、yum安装python3,pip3和最新版的Djangohttps://yq.aliyun.com/articles/6402132、安装celerypip3.6 install celery...

2020-04-13 15:29:10 288 1

转载 分布式事务

一、分布式事务的简介分布式事务对于一致性的要求是强一致性,因此对于我们后续讨论有一定的借鉴意义。如:bob给smith转账,强一致性的要求一定是需要对外来说bob减钱的同时smith加钱。 图1:单机环境下的一致性 图2:分布...

2020-04-12 23:54:54 618 1

转载 Zookeeper实现分布式锁 & 分布锁的对比

一、四种节点Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。Znode分为四种类型:1.持久节点(PERSISTENT):默认的节点类型。创建节点的客户端与zookeeper断开连接后,该节点依旧存在。2.持久节点顺序节点(PERSISTENT_SEQUENTIAL):在创建节点时,Zookeeper根据创建的时间顺序给该节点名称进行编号。3.临时节点...

2020-04-12 23:06:03 403

转载 https协议全解析

一、HTTPS的实现原理HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,在证书验证阶段才使用了非对称加密。 ① 证书验证阶段 浏览器发起 HTTPS 请求 服务端返回 HTTPS 证书 ...

2020-04-12 21:32:38 2148

转载 本地事务(与分布式事务的对比)

一、mysql事务的实现原理(redo log, undo log, MVCC)MySQL实现事务ACID特性的方式总结如下:A原子性(undo log):使用undo log来实现,如果事务执行过程中出错或者用户执行了rollback,系统通过undo log日志返回事务开始的状态。C一致性(回滚+恢复+隔离):通过回滚、恢复以及并发情况下的隔离性,从而实现一致性。I隔离性(锁以及MVC...

2020-04-11 14:08:56 813

转载 php框架分层模型

一、4种php分层模型架构架构 说明 3层架构(MVC): 视图层,模型层,控制器层。 4层架构: 视图层,模型层,服务层,控制器层。服务层通过依赖注入的方式将控制反转,能实现扩展和重用。 5层架构: 视图层,模型层,存储层,服务层,控制器层。存储层存放数据修改/获取逻辑。让模型只负责模型定义,让多个程序员工作在不同的层上。 AOP(面向切面编程): ...

2020-04-10 16:19:49 2114

原创 iTerm2,bash,zsh的区别?

iTerm2是终端模拟器,而非shellbash是最常用的shellzsh是终极的shell,兼容bash

2020-04-10 11:22:10 768

转载 yii2 route路由源码实现原理的深度解析

一、实现总览总结:yii默认将请求参数里面的r(即$_GET['r'])解析成相应的controller和action,并执行。过程:2个四步走step1 step2 step3 step4 Application->handleRequest() Request::resolve() UrlManage->parse...

2020-03-31 00:29:11 1224

转载 yii2相比yii的新特性

yii2和yii相比5个不一样的地方:composer、安全事件、事务管理、资源包、视图类1、composer:Yii2中已经使用Comsoper来管理各种依赖关系,在安装的时候完全可以用composer来进行安装2、安全事件:用来把控应用的安全,使用:Yii::$app->security->encrypt()3、事务管理:(3.1)最大的变化就是你可以在事物中使用回...

2020-03-29 01:59:08 406

转载 分布式ID生成器-订单号的生成(全局唯一id生成策略)

分库分表产生的4大问题:跨库问题、分布式事务问题、查询数据结果集合并、全局唯一性id保证。本文掰扯下全局唯一性id。全局唯一id的4种生成策略:UUID、数据库递增、snowflake、Redis全局唯一性id保证的4个要求:全局唯一、数据递增、信息安全、高并发高可用---a.全局唯一:不能出现重复的id号;---b.数据递增:保证下一个id一定大于上一个id;---c.信息安全:防止恶意...

2020-03-28 19:21:10 4223

转载 【订单号存储】最硬核实用的分库分表操作指南

两种方案分库分表:按照用户id来切分(推荐)、按照订单号来切分。方案一、按照用户id打散订单数据(推荐)(2.1)某个范围的uid订单到哪些库。0到2千万uid,对应的订单数据到a库、a表。2千万到4千万对应的订单到b库。---缺:某个范围内的用户,下单量比较多,那么造成这个库的压力特别大。(2.2)使用uid取模运算(推荐)库名称计算【用户id末尾4位 mod 32】:对用...

2020-03-28 19:11:54 1442

原创 git pull与git pull --rebase的区别详解

git pull = git fetch + git mergegit pull --rebase = git fetch + git rebase现在来看看git merge和git rebase的区别。假设有3次提交A,B,C。在远程分支origin的基础上创建一个名为"mywork"的分支并提交了,同时有其他人在"origin"上做了一些修改并提交了。其实这个时候E不应...

2020-03-21 11:32:30 8989

转载 kafka最全面试题汇总

内容很长,先来个目录//================kafka其他================//问题1:什么是Apache Kafka?问题2:Kafka中有哪几个组件?问题16:启动Kafka服务器的过程是什么?问题27:解释多租户是什么?问题35:解释术语“Log Anatomy”问题36:Kafka中的数据日志是什么?问题39:列出所有Apache Kafka业务问题4...

2020-03-07 17:01:57 3441

转载 postman—如何导入和导出

  此处介绍2种导出和导入的操作方法,一种是通过分享link,另一种是导出json文件,再次导入,个人推荐link的方式,简单方便,下面将详细介绍。  第一种:分享链接,导入链接的方式  1.1、生成link链接的操作步骤  1.2、导入link的操作步骤。将链接复制发给需要导入此文件夹下所有接口的A成员,A成员打开postman,选择操作如下:  将链接填写到l...

2020-03-04 11:15:58 7538

转载 吊打分布式原理

1 概念1.1 模型节点在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。异常 机器宕机:机器宕机是最常见的异常之一。在大型集群中每日宕机发生的概率为千分之一左右,在实践中,一台宕机的机器恢复的时间通常认为是24 小时,一般需要人工介...

2020-02-20 12:42:47 247

原创 php取数组中不存在的属性

在写接口的时候,经常会取数组内容,尤其是在foreach轮循着的时候,但是有的数组有这个属性,有的数组同一个属性却不存在,或者该数组就直接是空数组或者NULL,怎样获取数组的属性又不会报错呢?当数组为空时,怎样保证取数组内容时不会报错呢?直接上代码,有码有真相。$b = [ 'b1' => $a['a1']??'a1无', 'b2' => !empty($a[...

2020-02-13 15:48:58 1896

原创 高并发场景下的集群与分布式

1、分布式与集群的比较 分布式 集群 业务实现方式 将不同的业务分布在不同的地方 将几台服务器集中在一起,实现同一业务 提升效率方式 缩短单个任务的执行时间 提高单位时间内执行的任务数 联系 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 2、集群主要分为:高可用集群(High Availability Clust...

2020-02-09 20:00:32 492

转载 【面试】秒杀系统+高并发+(服务|缓存)雪崩

一、秒杀系统1、秒杀系统的设计(前端-后端-数据库-监控系统-中间代理)秒杀系统 问题 解决 问题(3个) 1.(a)每次都跟数据库交互,高并发的情况下,数据库吃不消,宕机。(b)多进程或多线程的情况下会导致数据脏读,导致秒杀产品超卖,或者存在读写锁冲突,请求超时。 (a)将请求拦截在系统上游,降低下游压力。(b)数据库行锁(推荐乐观锁),先扣库存,成功后再创建...

2020-02-09 18:29:55 1151

转载 服务雪崩+缓存雪崩+解决方案

一、服务雪崩1、定义:服务堆积在同一个线程池中,因为所有的请求都是同一个线程池进行处理,这时候如果在高并发情况下,所有的请求全部访问同一个接口,这时候可能会导致其他服务没有线程进行接受请求,这就是服务雪崩效应效应。2、原因:a.某几个机器故障:例如机器的硬驱动引起的错误,或者一些特定的机器上出现一些的bug(如,内存中断或者死锁)。b.服务器负载发生变化:某些时候服务会因为用户行为...

2020-02-09 17:59:02 3612 1

转载 php懒加载(自动加载)

a.通常php的加载是通过include(),require()等方法来加载外部文件,之后再通过实例调用方法或直接调用静态方法,而这样子写引入语句实在很麻烦;b.有的框架会将特定路径的文件全部引入,直接实例化就能使用,但这样一来有的类包不一定用到,写的类包越多的时候,加载的东西就不少了,影响程序的性能。此时,懒加载闪亮登场了!懒加载:实例化一个ReflectionClass,并传类名进去,就会...

2020-02-02 20:49:55 950

转载 csrf与xss攻击的详解与区别

一、csrf攻击1.CSRF的基本概念、缩写、全称:CSRF(Cross-site request forgery):跨站请求伪造。2.CSRF的攻击原理用户是网站A的注册用户,且登录进去,于是网站A就给用户下发cookie。从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件:(1)登录受信任网站A,并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的...

2020-02-02 19:47:08 15955 3

转载 PDO最全面的疑难杂症汇总

1、功能:pdo主要是用来对数据库访问的。不同数据库在访问时,采用相同方法名称,解决了数据库连库不统一问题。传统各个数据库的连库方式:mysql_connect —-mysqloci_connect —-oracledbase_open ——dbasepdo的连库方式:$db = new PDO("mysql:host=localhost;dbname=数据库名","用户名","密...

2020-02-02 14:03:02 544

转载 Redis高可用方案(持久化+复制+哨兵+集群)

一、高可用相关概念高可用:是当一台服务器停止服务后,对于业务及用户毫无影响。停止服务的原因可能由于网卡、路由器、机房、CPU负载过高、内存溢出、自然灾害等不可预期的原因导致,在很多时候也称单点问题。单点问题的2种解决方案:(1)主备方式(简单情景)这种通常是一台主机、一台或多台备机,在正常情况下主机对外提供服务,并把数据同步到备机,当主机宕机后,备机立刻开始服务。 Redis HA...

2020-01-31 21:57:12 582

转载 php require()和include()的区别

相同点:(1)都是包含并运行指定文件;(2) php5以后都是有条件包含(php5的include有条件包含require无条件包含);(3) 都是语言结构,不是真正的函数;不同点:(1) incluce在用到时加载,require在一开始就加载,_once后缀表示已加载的不加载;(2) PHP系统在加载PHP程序时有一个伪编译过程,可使程序运行速度加快。但incluce的文档仍为解释...

2020-01-30 22:32:13 224

转载 数据库四大特性+四种隔离+详细操作

一、数据库四大特性简称 特性 说明 A 原子性 整个事务中的所有操作要么全部成功执行,要么全部失败后回滚到开始处 C 一致性 数据库总是应该从一个一致性状态转为另一个一致性状态 I 隔离性 一个事务所做出的操作在提交之前,是否能为其它事务可见;隔离有有四个级别,隔离性最低,安全性最低,并发性最高,隔离性最高,安全性最高,但是并发性就最...

2020-01-30 16:04:20 643

转载 数据库存储引擎innodb与myisam

一、innodb与myisam的区别与取舍、innodb引擎的4大特性如下是两者的索引图:两者的相同点:两者都是mysql的常用引擎;两者的索引都是B+树两者的区别:事务:InnoDB支持,MyISAM不支持外键:InnoDB支持,MyISAM不支持索引类型:InnoDB是聚簇索引(叶子节点存数据),MyISAM是非聚簇索引(叶子节点存指针)插入速度:MyISAM批量插入速...

2020-01-29 19:41:10 412

转载 位运算的操作(加减乘除、负数、乘方、1的个数)

一、位运算相关规律+口诀c++中的位运算相关规律总结和口诀二、加减乘除int add(int num1, int num2){ int temp; do { temp = num1 ^ num2;//不进位相加:异或 num2 = (num1 & num2) << 1;//进位:位与+左移 num1 = temp; ...

2020-01-28 20:34:17 902

转载 【面试】一致性哈希&缓存雪崩|穿透|预热|更新|降级&Redis相关问题

一、一致性哈希使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离。数据库当单表数据大于500W的时候需要对其进行分库分表,当数据量很大的时候(标准可能不一样,要看Redis服务器容量)我们同样可...

2020-01-27 17:45:43 633

转载 单调栈问题【含详细思路,未完】

1、直方图的最大矩形面积问题:直方图是由排列在同一基线上的一系列矩形组成的多边形。为了简单起见,假设这些矩形的宽度相等但高度可能不同。例如,下图1给出了一个直方图,其中各个矩形的高度为3、2、5、6、1、4、4,宽度为标准1单位。当给定了一个保存所有矩形高度的数组时,如何找到其中最大的矩形。对于给定的例子,最大矩形如图阴影部分所示:时间复杂度和空间复杂度:O(n)publ...

2020-01-14 01:33:21 351

原创 MAC电脑突然开不了机的解决方案

电脑突然无法开机,报错如下:电脑因出现问题而重新启动,请按一下按键,或等几秒钟重新启动。step1: 强制关机重启长按电源10秒松手,再按电源开机------没奏效step2:安全模式启动按电源键开机,立马长按shif------没奏效step3:覆盖安装(这个不会影响电脑里原有的资料的)按电源键开机,立马长按Command+R,然后选择“重新安装macOS”,这个过程...

2019-09-30 13:26:50 19135

原创 kafka消息队列的11个基本结构+9个特性+5个场景

Kafka基本结构(11个)主题、消息、分区和副本、Leader 副本和Follower 副本、偏移量、日志段、代理、生产者、消费者和消费组、ISR、ZooKeeper主题  Kafka 将一组消息抽象归纳为一个主题( Topic ),也就是说,一个主题就是对消息的一个分类。生产者将消息发送到特定主题,消费者订阅主题或主题的某些分区进行消费。消息  消息是Kafka 通信的基本...

2019-08-12 21:53:10 1256

原创 git archive详解

#查看支持的归档格式有tar、tgz、tar.gz、zipgit archive --list#导出最新的版本库git archive -o ../latest.zip HEAD#导出一个目录git archive -o ../git-1.4.0-docs.zip HEAD:Documentation/#导出指定提交记录git archive -o ....

2019-08-12 21:14:31 6073

转载 依赖注入(DI)和容器

class Luntai{ public function roll() { echo '车轮在滚动<hr>'; }}class BMW{ public function run() { $Luntai = new Luntai(); $Luntai->roll(); ...

2019-08-12 04:21:12 716

原创 mysql查看+创建索引

查看索引:show index from 表名工具:mysql数据库创建一个user的表里边的字段建立索引:(1)普通索引-add indexalter table `table_name` add index index_name (`column`);(2)多列索引-add indexalter table `table_name` add index index_name...

2019-08-05 21:08:11 168

原创 mysql update致命性更新的回滚方式

执行update语句的时候,有的时候一个不小心,where条件没写好,本想更新几条记录,但是灾难性地更新了整个表,而且想恢复,恢复代价极高。这种灾难性的更新,一旦发生在生产环境,那将是灾难性后果。轻则删库跑路被开除,重则吃不了兜着走,简直是“恐怖”性,“灾难”性事件!一、下面列举一些常见的容易写错的写法(1)update test set is_del=1 where 13456;--(...

2019-07-30 23:36:51 5526

转载 Nginx location解析 + url尾部的斜杠是否需要

语法规则location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... }语法规则很简单,一个location关键字,后面跟着可选的修饰符,后面是要匹配的字符,花括号中是要执行的操作。修饰符=表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。 ~表示该规则是使用正则定义的,区分大小写。 ~*...

2019-07-24 07:55:54 11683

转载 Mysql 的utf8编码 PK utf8mb4编码

一、Unicode 字符集包含了上百万个字符二、编码方式(1)UTF-32编码:最简单的编码,每个字符使用 32 位。缺点:这样做最简单,因为一直以来,计算机将 32 位视为数字,而计算机最在行的就是处理数字。但问题是,这样太浪费空间了。希望:UTF-8 可以节省空间,在 UTF-8 中,①字符“C”只需要 8 位。②一些不常用的字符,比如“”需要 32 位。③其...

2019-07-19 17:02:44 514

转载 MySQL中IS NULL、IS NOT NULL、!=真的不能用索引吗

知道从什么时候开始,网上流传着这么一个说法:MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。这种说法愈演愈烈,甚至被很多同学奉为真理。咱啥话也不说,举个例子。假如我们有个表s1,结构如下:CREATE TABLE s1 ( id INT NOT NULL AUTO_INCREMENT, ...

2019-07-19 16:50:48 324

Laravel框架关键技术解析

资源获取不易,只收取最低积分,给想要深度学习go的php小伙伴~

2018-03-22

数学建模 灰色预测模型(代码加课件)

数学建模的灰色预测模型,Matlab代码+课件,特全

2014-08-09

空空如也

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

TA关注的人

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