07 2018 档案

摘要:1.前言 本文介绍一下Java并发框架AQS,这是大神Doug Lea在JDK5的时候设计的一个抽象类,主要用于并发方面,功能强大。在新增的并发包中,很多工具类都能看到这个的影子,比如:CountDownLatch、Semaphore、ReentrantLock等,其内部基本都有一个Sync对象是实 阅读全文
posted @ 2018-07-24 21:28 dark_saber 阅读(538) 评论(0) 推荐(0) 编辑
摘要:1.前言 之前的文章记录了一下Java的内存模型和线程的关系,其实已经由内存模型谈到了线程安全的问题。本文将对线程安全进行具体的描述,对锁的实现进行探究,要明白锁的原理是什么,才能更好的利用锁,排查相关问题。 2.线程安全 《Java Concurrency In Practice》作者Brian 阅读全文
posted @ 2018-07-23 22:22 dark_saber 阅读(407) 评论(1) 推荐(0) 编辑
摘要:1.前言 本文记录一下Java的线程与内存等知识,更好的理解Java的线程是如何工作的。 让计算机并发执行若干个运算任务和更充分地利用计算机处理器的效能之间看起来是因果关系,但实际上没那么简单。CPU的运算能力十分强大,但是任何任务都不太可能单单靠CPU就能够完成,比如读取内存,存储的数据,网络的请 阅读全文
posted @ 2018-07-22 15:02 dark_saber 阅读(1058) 评论(0) 推荐(0) 编辑
摘要:1.前言 本文记录内容来自《深入理解Java虚拟机》的第十章早期(编译期)优化其中一节内容,其他的内容个人觉得暂时不需要过多关注,比如语法、词法分析,语义分析和字节码生成的过程等。主要关注的就是Java的一些语法糖是如何实现的。 语法糖不会提供实质性的功能改进,但是它们或能提高效率,或能提升语法的严 阅读全文
posted @ 2018-07-21 21:44 dark_saber 阅读(518) 评论(0) 推荐(0) 编辑
摘要:1.前言 之前对虚拟机的加载机制进行了描述:这里,本章主要对虚拟机的运行机制进行记录说明。 虚拟机区别于物理机就在于运行方面,物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层次上的,虚拟机的执行引擎是自己实现的,可以自行定制指令集。所以JVM可以进行跨平台。 2.栈帧的结构 在最早的文章 阅读全文
posted @ 2018-07-20 22:17 dark_saber 阅读(271) 评论(0) 推荐(0) 编辑
摘要:1.前言 本章记录一下Class文件是怎么被加载到内存中进行执行的。 虚拟机并没有约束一定是本地文件才能进行加载,网络文件也是可以的,也没有约束必须是Java文件,一切遵守虚拟机解析规则的文件都能被加载,Java对应的就是Class字节码文件了。 不同于其他语言,在编译时就需要进行连接,Java语言 阅读全文
posted @ 2018-07-19 21:44 dark_saber 阅读(900) 评论(0) 推荐(0) 编辑
摘要:1.前言 本篇文章记录一下常见的虚拟机性能监控和排查工具的作用和使用方法。 2.JDK命令行工具 jdk的bin目录下有着很多exe可执行程序,我们常用的就是java、javac运行和编译命令了。但是还有很多其它用于检测虚拟机运行状态的命令。本章对其进行介绍,学习如何使用。这些工具体积一般很小,原因 阅读全文
posted @ 2018-07-18 19:08 dark_saber 阅读(6793) 评论(0) 推荐(0) 编辑
摘要:1.前言 本文归纳一下对Java内存管理机制的理解,尽可能通俗易懂,知识来自于深入理解Java虚拟机一书。 2.起源 计算机简单理解就是根据执行计划,通过参数得到结果。执行计划就是程序了,参数就是实际变量,最终运行得到我们要的结果。磁盘由于其廉价且持久化,用于保存程序和数据,但是受制于执行速度,内存 阅读全文
posted @ 2018-07-17 19:33 dark_saber 阅读(348) 评论(0) 推荐(0) 编辑
摘要:1.前言 本章记录数据库的备份与恢复操作。MySQL提供了很多工具完成备份工作:mysqldump、ibbackup、replication,也可以使用一些第三方的工具完成,如xtrabacup、LVM快照等。 2.备份与恢复概述 根据备份方法的不同,可以将备份分为: Hot Backup(热备): 阅读全文
posted @ 2018-07-12 19:40 dark_saber 阅读(978) 评论(0) 推荐(1) 编辑
摘要:1.前言 前面具体讲了MySQL中的锁实现的方式,解释了是如何保证数据在并发情况下的可靠性,并提到了事务REPETABLE READ和READ COMMITTED,解释了一下这两种事务的不同。本章讲具体就事务的实现过程进行记录,扫除这块让人疑惑的知识点。 事务是数据库区别于文件系统的一个重要特性之一 阅读全文
posted @ 2018-07-11 20:25 dark_saber 阅读(329) 评论(0) 推荐(0) 编辑
摘要:1.前言 我们都知道在并发的情况下,修改数据时需要添加锁,但是却对数据库锁的工作原理不甚理解,不知道锁的运行机制,也就对数据的安全性无法明白。本章记录MySQL中锁的相关知识。 2.什么是锁 锁是数据库系统区别与文件系统的一个关键特性,用于管理对共享资源的并发访问。InnoDB提供了行级别的锁,在数 阅读全文
posted @ 2018-07-09 08:44 dark_saber 阅读(285) 评论(0) 推荐(0) 编辑
摘要:1.前言 本章记录MySQL中的索引机制,了解索引可以让数据库更快。索引太多会造成性能损耗,索引太少肯定查询效率不高。 2.InnoDB存储引擎所有概述 InnoDB中常见的索引有: B+树索引 全文索引 哈希索引 哈希索引是自适应的,无法人为干预是否在一张表中生成hash索引。 B+树不能找到一个 阅读全文
posted @ 2018-07-08 09:28 dark_saber 阅读(378) 评论(0) 推荐(0) 编辑
摘要:1.前言 上一章记录了MySQL中的一些文件组成,以及相关作用和参数配置,本章开始记录深层次的存储结构,以便更好理解MySQL的设计。 2.索引组织表 InnoDB中,表都是根据主键顺序组织存放的,这种方式称为索引组织表。每个表都有一个主键,没有主键会按照一定规则选择或创建主键: 判断表中是否有非空 阅读全文
posted @ 2018-07-07 09:52 dark_saber 阅读(482) 评论(0) 推荐(0) 编辑
摘要:1.前言 第二章简单记录了一下InnoDB存储引擎的一个基本内容,介绍了保证高效插入的Insert Buffer,change Buffer和确保数据安全的write ahead log以及double write机制,还介绍了查询和保存的内存策略,LRU列表、Free列表以及Flush列表,与此同 阅读全文
posted @ 2018-07-06 08:56 dark_saber 阅读(266) 评论(0) 推荐(0) 编辑
摘要:1.前言 本节记录InnoDB的相关知识点。 2.InnoDB存储引擎简介 2.1版本 MySQL5.1开始,允许用动态方式加载引擎,这样存储引擎的更新可以不受MySQL数据库版本的限制。下面是各个InnoDB版本功能对比: 老版本的InnoDB 支持ACID、行锁设计、MVCC InnoDB 1. 阅读全文
posted @ 2018-07-05 09:06 dark_saber 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询。 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合。MySQL中数据库文件可以是frm、MYD、MYI、ibd结尾的文件。使用NDB引擎时,可以是内存中的文件。 实例:MySQL数据库由后台线程以及一个共享内存区组成 阅读全文
posted @ 2018-07-04 09:02 dark_saber 阅读(240) 评论(0) 推荐(0) 编辑
摘要:1.前言 本节记录一下redis的一些功能上的实现,包括发布订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志和监视器。 2.发布订阅 上一章介绍sentinel的时候说到了sentinel会订阅主从服务器的hello频道,每个sentinel通过往这个频道中传递各自的状态,让其它sentine 阅读全文
posted @ 2018-07-03 09:10 dark_saber 阅读(388) 评论(0) 推荐(0) 编辑
摘要:1.前言 本章介绍redis的三种多服务实现方式,尽可能简单明了总结一下。 2.复制 复制也可以称为主从模式。假设有两个redis服务,一个在127.0.0.1:6379,一个在127.0.0.1:12345。我们登陆12345端口的redis,输入命令slaveof 127.0.0.1:6379就 阅读全文
posted @ 2018-07-02 08:56 dark_saber 阅读(1490) 评论(0) 推荐(0) 编辑
摘要:1.前言 上节总结了一下redis的数据结构和对象构成,本章介绍redis数据库一个基本面貌,是如何设计的。 2.数据库 服务器结构redisServer: redisDb *db: 一个数组,保存服务器中所有的数据库 dbnum: 服务器的数据库数量,默认16个 saveparam *savepa 阅读全文
posted @ 2018-07-01 15:57 dark_saber 阅读(326) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示