摘要:
1 背景 像我们去面试一些大公司的时候,就会遇到一些关于缓存的问题。可能很多同学都是接触过,多多少少了解一些,但是如果没有好好记录这些内容,不熟练精通的话,在真正面试的时候,就很难答出来了。 在我们的平常的项目中多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。 特别是 阅读全文
摘要:
一、 进程守护使用场景。 后端经常会有类似这样的场景,某个脚本,需要不断的重复运行,这个时候,最好有一 个守护程序,帮助我们不断地自动地拉起这些脚本进程,让它自动地重复运行。 在 Linux/Unix 系统下,supervisor 就是使用 python 开发的一个优秀的进程管理工 具,本文尝试使用 阅读全文
摘要:
幂等性是什么? 幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。 接口为什么要实现幂等? 前端重复提交选中的数据,后台只产生对应这个数据的一个反 阅读全文
摘要:
布隆过滤器 (Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。loom Filter是一种空间效率很高的随机数据结构,它实际上是由一个很长的二进制向量和一系列随机映射函数组成,布隆过滤器可以用于可以快速且空间效率高的判断一个元素是否属于一个集合;用来实 阅读全文
摘要:
PHP性能优化小技巧: 1. foreach效率更高,尽量用foreach代替while和for循环。2. 循环内部不要声明变量,尤其是对象这样的变量。3. 在多重嵌套循环中,如有可能,应当将最长的循环放在内层,最短循环放在外层,从而减少cpu跨循环层的次数,优化程序性能。4. 用单引号替代双引号引 阅读全文
摘要:
Redis-高并发代言词,为什么做分布式要Redis? 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。这里对 Redis 常见问题做一个总结,解决大家的知识盲点。 1、为什么使用 Redis 阅读全文
摘要:
大流量处理-深入分库分表实战 背景 我们先来看一下业务的一个发展情况,由我们最开始的单表,发展到单表分表,在因为数据量得增加我们不得不到了分库分表。当然这些都是符合一个大公司的发展方向的。很少会有业务一开始就会设计为分库分表,虽说这样会减少后续的坑,但部分公司刚开始都是以业务为主。直到业务发展到单表 阅读全文
摘要:
架构师呕心沥血的成长之路:单体架构演变成分布式架构 一、前言 随着互联网时代的发展,之前的大型机架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的分布式架构,从大型机到分布式,经历了好几个阶段,我们弄明白各个阶段的架构,才能更好地理解和体会分布式架构的好处,那么我们就 阅读全文
摘要:
RabbitMQ高级特性都不会,凭什么要涨薪? RabbitMQ高级特性 (1)ACK(confirm机制) (2)如何保证消息百分百投递成功 (3)幂等性 (4)return机制 (5)限流 (6)重回队列 (7)TTL (8)死信队列 高级特性: 1. ACK(confirm机制) 1.1 什么 阅读全文
摘要:
B+Tree原理及mysql的索引分析 一、索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设 阅读全文
摘要:
首先我们先了解一下递归函数: 递归函数在语言学习的时候会单独拿出来学习,因为它非常常用,本质上来讲递归函数就是调用自己的函数。 举个例子: <?php function test(){ static $a=0; if($a<10){ $a++; test(); } echo $a."<br/>"; 阅读全文