摘要:
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两 种基本的锁类型来对数据库的事务进行并发控制。 一、事务 阅读全文
摘要:
直播运营活动中经常会有这样的需求,根据用户送礼情况做排名。这个排行榜具有以下特点: 用户每次请求会返回用户的排名 送礼金额越多粉丝排名越靠前 相同金额送礼越早越靠前 排行榜会随着粉丝送礼变化而不断变化 排行榜的实现方式 表结构 CREATE TABLE `user` ( `id` int(10) N 阅读全文
摘要:
数据库表结构: 1 2 3 4 5 6 create table user ( id int primary key, name varchar(20), sex varchar(5), index(name) )engine=innodb; 1 2 3 select id,name where n 阅读全文
摘要:
MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作。子查询虽然很灵活,但是执行效率并不高。 那么问题来了,什么是子查询?为什么它的效率不高? 子查询:把内层查询结果当作外层查询的比较条件 示例: select good 阅读全文
摘要:
首先看一下概念: 502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 503:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间 阅读全文
摘要:
保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。限流包括Nginx层面的限流以及业务代码逻辑上的限流。 为什么需要限流 以服务的调用方来看,可以分为两种类型服务 对外提供的服务(web服务) 这类服务有以下几种可能导致机器被拖垮: 1.用户增长过快 2.热点事件 3.爬虫 4.刷单 对内提供的 阅读全文
摘要:
1.结论 在RR的隔离级别下,Innodb使用MVVC和next-key locks解决幻读,MVVC解决的是普通读(快照读)的幻读,next-key locks解决的是当前读情况下的幻读。 2.幻读是什么 事务A,先执行: update table set name=“hh” where id>3 阅读全文
摘要:
前言 设计一个缓存系统,不得不考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可 阅读全文
摘要:
进程是什么? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。 在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实 阅读全文
摘要:
介绍 Facades 为应用的 IoC 服务容器 的类提供了一个静态的接口。Laravel 里面自带了一些 Facades,如Cache等。Laravel 的门面作为服务容器中底层类的“静态代理”,相比于传统静态方法,在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。 解释 在 Laravel 阅读全文
摘要:
1、 布隆过滤器的概念 布隆过滤器(BloomFilter)是一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你 某样东西一定不存在或者可能存在,它是用多个哈希函数,将一个数据映射到位图结构中。此种方式不仅可以提升查询效率,也可以节省大量的内存空间,但是布隆过滤器也存在一 阅读全文