自定义博客皮肤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的博客

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

原创 多种方式生成短网址(分布式发号器)解读+实现(亲测可用)

1.短网址的长度?---长度<=7的62进制数(大小写字母加数字),最多可生成568亿个短链 答:长度不超过7的字符串,由大小写字母加数字共62个字母组成。a-zA-Z0-9这62位取6位组合,可产生62^6=568亿个组合数量 3.如何计算短网址?---分布式发号器 答:分布式发号器。 ...

2020-06-21 15:55:32 46 0

转载 分布式幂等性问题的详细剖析

目录 1、何为幂等性?---多次调用,对资源的影响一样 2、幂等性主要场景有哪些?---微服务+MQ+用户交互+第三方接口(支付) 3、幂等性的作用是什么? 1)查询 2)新增 3)修改 4)删除 4、如何解决幂等性问题? 1)控制重复请求-控制操作次数+及时重定向 2)过滤重...

2020-06-17 09:57:37 89 0

转载 Mac下使用sshpass让iterm2支持多ssh登录信息保存

mac下没有xshell等连接linux服务器的工具,当需要管理的服务器越来越多之后,密码管理就成了一个很头疼的问题,每次都需要去复制粘贴密码,浪费了很多时间,在网上查了不少资料,发现mac下可以使用iterm2+sshpass来实现免密登陆,特此记录下。 一、安装iterm2 直接到官网下载...

2020-06-16 22:11:38 55 0

转载 dfs与dfs遍历图节点

图的存储结构主要分两种,一种是邻接矩阵,一种是邻接表。 1.1 邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上...

2020-06-14 13:33:30 55 0

原创 mac安装redis与php-redis扩展

目录 一、安装redis服务(6.0.5版本) 二、安装php的redis扩展(5.2.2版本) 一、安装redis服务(6.0.5版本) 1、先搜索:brew search redis, 再安装:brew install redis 安装过程中每次会进行Homebrew更新检测,影响安装...

2020-06-12 15:37:13 117 0

原创 单链表常考算法题汇总
原力计划

1、从尾到头打印单链表 2、单链表实现约瑟夫环 3、逆置/反转单链表 4、k个节点为一组进行翻转 5、返回链表中间(1/2)节点(扩展:返回链表1/k节点) 6、单链表排序(冒泡排序/快速排序) 7、查找单链表的中间节点,要求只能遍历一次链表 8、查找单链表的倒数第k个节点,要求...

2020-06-06 17:44:48 113 0

原创 laravel的hasOne,hasMany,belongsTo,belongsToMany,hasOneThrough,hasManyThrough详解

hasOne、hasMany、belongsTo这3个的大致中文意思: hasOne:有一个,加上主谓语应该是 ,A有一个B hasMany:有很多,A有很多B belongsTo:属于,A属于B goods_cate(商品分类表:id,titile),goods(商品表:id,cate_id,...

2020-06-05 22:31:46 116 0

原创 nginx虚拟主机配置指南(超全超傻瓜式)

目录 一、虚拟主机配置实例(亲测可用) 1、单项目的(域名=test.single.com,项目名=single) 2、多项目的(域名=test.multi.com,项目名=multi) 二、Nginx相关参数详解 1、fastcgi.conf与fastcgi_param的区别 2、P...

2020-05-22 10:50:48 95 0

原创 神奇的/etc/hosts配置

开发同学在配置虚拟主机的时候,或者在开发环境与测试环境切换的时候,需要配置hosts,但有时候配置了却失效,非常沮丧。 (1)1个ip可有配置多个域名 1.2.3.4 dev.baidu.com 1.2.3.4 test.baidu.com (2)一个域名不可绑定多个ip 1.2.3.4 cesh...

2020-05-19 17:33:08 38 0

原创 【坑死人不偿命】mac安装php设置timezone失败问题解决

我对灯发誓,我真的去修改php7.2对应的php.ini文件,在改了这句 date.timezone = "Asia/Shanghai" 并且也重启成功了php7.2,但是就是没奏效。想着我mac电脑是不是php版本问题。 实际运行奏效的php MacBook-Pr...

2020-05-13 22:42:03 53 0

原创 postman请求https报错Could not get any response

之前在postman上请求好好的,后来电脑重装系统后,再次安装postman后就出现了这个幺蛾子。 多方查看,其实解决方案postman已经给出了,SSL验证关了就行 postman ---> Preferences -> 把SSL certificate ve rificatio...

2020-05-11 21:01:52 121 0

转载 mac中git ssh key配置

目录 一、查看是否已配置 二、重新配置 一、查看是否已配置 首先、确认本地是否已经有对应配置,打开Terminal终端,按如下步骤: 1.cd ~/.ssh ->进入ssh目录 如果不能进入该目录,说明没生成过,则需要使用命令2检查配置 2. git config --l...

2020-05-10 18:57:17 62 0

转载 乐观锁&悲观锁之面试考点详细解析

一、乐观锁和悲观锁的简介 1、概念 (1)乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。 (2)悲观锁:悲观锁在操作数据时比较悲观,认为别人会同时修改数据。因...

2020-05-08 09:20:13 81 0

转载 小白docker入门碎碎念

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

2020-04-30 21:36:48 86 0

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

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

2020-04-20 16:56:03 130 0

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

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

2020-04-13 15:29:10 56 0

转载 zookeeper分布式事务

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

2020-04-12 23:54:54 105 0

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

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

2020-04-12 23:06:03 101 0

转载 https协议全解析

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

2020-04-12 21:32:38 44 0

转载 分布式事务

一、mysql事务的实现原理(redo log, undo log, MVCC) MySQL实现事务ACID特性的方式总结如下: A原子性(undo log):使用undo log来实现,如果事务执行过程中出错或者用户执行了rollback,系统通过undo log日志返回事务开始的状态。C一...

2020-04-11 14:08:56 42 0

转载 php框架分层模型

一、4种php分层模型架构 架构 说明 3层架构(MVC): 视图层,模型层,控制器层。 4层架构: 视图层,模型层,服务层,控制器层。服务层通过依赖注入的方式将控制反转,能实现扩展和重用。 5层架构: 视图层,模型层,存储层,服务层,控制器层。存储层存放数据...

2020-04-10 16:19:49 132 0

原创 iTerm2,bash,zsh的区别?

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

2020-04-10 11:22:10 104 0

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

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

2020-03-31 00:29:11 144 0

转载 yii2相比yii的新特性

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

2020-03-29 01:59:08 88 0

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

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

2020-03-28 19:21:10 631 0

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

两种方案分库分表:按照用户id来切分(推荐)、按照订单号来切分。 方案一、按照用户id打散订单数据(推荐) (2.1)某个范围的uid订单到哪些库。 0到2千万uid,对应的订单数据到a库、a表。2千万到4千万对应的订单到b库。 ---缺:某个范围内的用户,下单量比较多,那么造成这个库的压力...

2020-03-28 19:11:54 189 0

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

git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在来看看git merge和git rebase的区别。假设有3次提交A,B,C。 在远程分支origin的基础上创建一个名为"...

2020-03-21 11:32:30 555 0

转载 kafka最全面试题汇总

内容很长,先来个目录//================kafka其他================//问题1:什么是Apache Kafka? 问题2:Kafka中有哪几个组件?问题16:启动Kafka服务器的过程是什么? 问题27:解释多租户是什么? 问题35:解释术语“Log Anatom...

2020-03-07 17:01:57 234 0

转载 postman—如何导入和导出

  此处介绍2种导出和导入的操作方法,一种是通过分享link,另一种是导出json文件,再次导入,个人推荐link的方式,简单方便,下面将详细介绍。   第一种:分享链接,导入链接的方式   1.1、生成link链接的操作步骤   1.2、导入link的操作步骤。将链接复制发给...

2020-03-04 11:15:58 351 0

转载 吊打分布式原理

1 概念 1.1 模型 节点 在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。 异常 机器宕机:机器宕机是最常见的异常之一。在大型集群中每...

2020-02-20 12:42:47 87 0

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

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

2020-02-13 15:48:58 327 0

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

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

2020-02-09 20:00:32 177 0

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

一、秒杀系统 1、秒杀系统的设计(前端-后端-数据库-监控系统-中间代理) 秒杀系统 问题 解决 问题(3个) 1.(a)每次都跟数据库交互,高并发的情况下,数据库吃不消,宕机。(b)多进程或多线程的情况下会导致数据脏读,导致秒杀产品超卖,或者存在读写锁冲突,请求超时。 ...

2020-02-09 18:29:55 223 0

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

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

2020-02-09 17:59:02 245 0

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

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

2020-02-02 20:49:55 110 0

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

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

2020-02-02 19:47:08 331 0

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

1、功能:pdo主要是用来对数据库访问的。不同数据库在访问时,采用相同方法名称,解决了数据库连库不统一问题。 传统各个数据库的连库方式:mysql_connect —-mysql oci_connect —-oracle dbase_open ——dbase pdo的连库方式: $db = ne...

2020-02-02 14:03:02 121 0

转载 Redis高可用方案

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

2020-01-31 21:57:12 120 0

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

相同点:(1)都是包含并运行指定文件; (2) php5以后都是有条件包含(php5的include有条件包含require无条件包含); (3) 都是语言结构,不是真正的函数; 不同点:(1) incluce在用到时加载,require在一开始就加载,_once后缀表示已加载的不加载; (2)...

2020-01-30 22:32:13 52 0

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

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

2020-01-30 16:04:20 97 0

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