摘要: 怎么理解缓存雪崩? 举个简单的例子:如果所有首页的Key失效时间都是12个小时,中午13点刷新的,我零点有个秒杀活动大量用户涌入,假设当时每秒6000个请求,本来缓存在可以抗住每秒5000个请求,但是缓存当时所有的Key都失效了。此时1秒6000个请求全部落数据库,数据库必然扛不住,它会报警一下,真 阅读全文
posted @ 2021-08-10 13:52 周国伟 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 时间复杂度是衡量算法好坏的一个重要指标。 衡量代码好坏,包括两个非常重要的指标: 1、运行时间; 2、占用空间; 由于运行环境和输入规模的影响,代码的绝对执行时间是无法评估的,但我们却可以预估代码基本操作执行次数。 基本操作次数 场景一:一条长10寸的面包,每3天吃掉1寸,那么吃掉整个面包需要几天? 阅读全文
posted @ 2021-08-10 11:43 周国伟 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 事务 严格意义上的事务实现应该是具备原子性、一致性、隔离性和持久性,简称ACID。 1、原子性:可以理解为一个事务内的所有操作要么都执行,要么都不执行。 2、一致性:可以理解为数据是满足完整性约束的,也就是不会存在中间状态的数据,比如你账上有400,我账上有100,你给我打200块,此时你的账上应该 阅读全文
posted @ 2021-08-10 11:33 周国伟 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 主从复制以及主从复制的作用: 在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需要的,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。 mysql支持的复制类型: 1、基于语句的复制:在服务器上执行sql语句,在从服务器上执行同样的语句,mysql 阅读全文
posted @ 2021-08-10 11:22 周国伟 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 消息队列,一般我们会简称它为MQ(Message Queue),嗯,就是很直白的简写。 队列是一种先进先出的数据结构。 消息队列可以简单理解为:把要传输的数据放在队列中。 把数据放到消息队列叫做生产者,从消息队列里边取数据叫做消费者。 为什么要用消息队列? 解耦、异步、削峰/限流 阅读全文
posted @ 2021-08-10 10:11 周国伟 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 在互联网早期时候,单体架构就足以支撑起日常的业务需求,大家的所有业务服务都在一个项目里,部署在一台物理机器上。所有的业务包括你的交易系统、会员信息、库存、商品等都夹杂在一起,当流量一旦起来之后,单体架构的问题就暴漏出来了,机器挂了所有的业务全部无法使用了。 于是,集群架构的架构开始,单机无法抗住的压 阅读全文
posted @ 2021-08-10 10:09 周国伟 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 面对业务急剧增长你怎么处理? 业务量增长10倍、100倍怎么处理? 你们那系统怎么支撑高并发的? 怎么设计一个高并发系统? 高并发系统都有什么特点? 诸如此类,问法很多。 我想大多数人比不知道怎么回答,这种类型的问题,看着很难无处入手,但是我们可以有一个常规的思路去回答,就是围绕支撑高并发的业务场景 阅读全文
posted @ 2021-08-10 10:04 周国伟 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 在APP开放接口API的设计中,避免不了的就是安全性问题。 一、https协议 对于一些敏感的API接口,需要使用https协议。https是在http超文本传输协议加入SSL层,它在网络间通信是加密的,所以需要加密证书。 二、设计签名 原理:用户登录时向服务器提供用户认证信息(如账号和密码),服务 阅读全文
posted @ 2018-10-11 14:35 周国伟 阅读(4943) 评论(0) 推荐(0) 编辑
摘要: btree索引与hash索引的区别,之前不清楚,mark一下。 Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以Hash索引的查询效率要远高于B-Tree索引。 可能很多人又有疑问了,既然Has 阅读全文
posted @ 2018-10-08 13:34 周国伟 阅读(4132) 评论(1) 推荐(0) 编辑
摘要: 关于团队管理的四个维度,主要包括向下管理、向上管理、对外管理、自我管理。 1、向下管理 (1)、技术尊重 要了解程序员,你首先需要深入理解他们使用的工具、流程,以及程序设计的艺术。你理解得越深入,在和下属程序员进行技术对话时,参与能力就越强,越容易获得他们的尊重。微软的一位程序架构师这样评价比尔.盖 阅读全文
posted @ 2018-10-08 11:06 周国伟 阅读(4925) 评论(0) 推荐(0) 编辑
摘要: 今天的分享主要针对技术团队管理者品质、团队管理的四个维度、产品开发过程管理、系统架构理念等几点内容,时间有限,不能针对各个方面深入介绍,请大家见谅。其实我们作为技术团队管理者,每天都需要关注技术、产品的发展趋势,也需要具备产品意识,所以我们的工作范围也会包括新技术理解(英文文章阅读和翻译、技术框架原 阅读全文
posted @ 2018-09-30 15:02 周国伟 阅读(1566) 评论(0) 推荐(0) 编辑
摘要: 这些面试题偏向中级到高级,可能你都没遇到过的!下面大家来看看吧,认真点的可以到网上搜搜问题的答案,说不定能帮到你进阶PHP! 0、简单做一下自我介绍,? 然后谈一下近三年来你的得意之作? 1、面试官看过你的简历,会问一些你做的项目的用户量、pv、吞吐量、相关难点和解决方法等 2、数据库设计经验,为什 阅读全文
posted @ 2018-09-29 11:12 周国伟 阅读(1470) 评论(0) 推荐(0) 编辑
摘要: FastCGI原理 FastCGI是一个运用于Http Server和动态脚本语言间通信的接口,多数流行的Http Server都支持FastCGI,包括Apache、Nginx和lighttpd等。同时,FastCGI也被许多脚本语言支持,其中就有PHP。 FastCGI接口方式采用C/S结构,可 阅读全文
posted @ 2018-09-28 18:05 周国伟 阅读(4631) 评论(0) 推荐(1) 编辑
摘要: 在项目开发中,有时我们需要知道远程的URL地址是否能访问正常,判断其正常与否后进行下一步的操作,那么在PHP中如何获取远程HTTP的状态呢? 文件preg.php 方式一、 运行结果: 方式二、 运行结果: 阅读全文
posted @ 2018-09-28 17:26 周国伟 阅读(1990) 评论(0) 推荐(0) 编辑
摘要: header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301 header('Location: http://www.ithhc.cn/'); //跳转到一个新的地址... 阅读全文
posted @ 2018-09-28 17:18 周国伟 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 现在基本每个公司都做APP,所以大家都面临 APP接口版本兼容的问题。 iOS和android 要不断开发新版本,很多服务端开发都是在以前接口的逻辑上进行修改。新的APP和接口开发后,接口如何兼容老的APP? 有的公司 每次发布完APP,就强制用户更新到最新版本。不推荐这样,因为用户体验太差。 就算 阅读全文
posted @ 2018-09-28 11:42 周国伟 阅读(3179) 评论(0) 推荐(0) 编辑
摘要: 背景 最近做了一个有意思的功能《官网内容订阅》,用户在官网扫码后可以订阅官网栏目,订阅栏目后发送模版消息提醒用户订阅成功,模版消息关联了小程序,然后做了一个小程序来管理用户订阅的栏目,小程序提供订阅和新闻列表阅读功能。 实现技术调研分析 通过背景描述我们知道需要实现两块登录:1、官网扫码二维码登录; 阅读全文
posted @ 2018-09-28 09:50 周国伟 阅读(9865) 评论(0) 推荐(0) 编辑
摘要: 利用flock()函数对文件进行加锁(排它锁),实现并发按序进行。 flock(file,lock,block)有三个参数。 file:已经打开的文件 lock:锁的类型 LOCK_SH:共享锁(读锁) LOCK_EX:独占锁定(排它锁,写锁) LOCK_UN:解锁 LOCK_NB:如果希望在文件锁 阅读全文
posted @ 2018-09-26 17:38 周国伟 阅读(7008) 评论(0) 推荐(0) 编辑
摘要: 1、不要使用mysql_函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP7已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的PDO实现。 2、不要编写垃圾代码 这一条可能易于理解,但是会变得越来越重要,因为PHP7的速度提升可能会隐藏你 阅读全文
posted @ 2018-09-20 17:51 周国伟 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 假设订单业务表结构为: 其中: oid,订单ID,主键 date,下单日期,有普通索引,管理后台经常按照date查询 uid,用户ID,有普通索引,用户查询自己订单 status,订单状态,有普通索引,管理后台经常按照status查询 money/time,订单金额/时间,被查询字段,无索引 … o 阅读全文
posted @ 2018-09-18 18:23 周国伟 阅读(234) 评论(0) 推荐(0) 编辑