LSM(Log Structured Merge Trees ) 笔记

一、大幅度制约存储介质吞吐量的原因 首先抛出结论。无论任何存储介质(不管是机械硬盘还是SSD,抑或是内存)的顺序访问速度都远远高出随机访问的速度。 二、传统数据库的实现机制 传统数据库,比如Mysql使用的b+树索引,对读友好。但容易造成随机写。比如新插入一个值到数据库,首先我们要读取b+树,判断新 ... »

STL_deque容器

一、deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。 deque在接口上和vector非常相似,在许多操作的地方可以直接替换。 deque可以随机存取元素(支持索引值直接存取, 用[]操作符 ... »

Java流程控制与Scanner类的使用

Java流程控制与Scanner类的使用 Scanner类 Scanner类可以使程序接受键盘输入,实现人机交互 一个完整的Scanner的使用例子: //创建一个扫描器对象,用于接收键盘数据 Scanner s=new Scanner(System.in); System.out.println( ... »

Azure Terraform(六)Common Module

一,引言 之前我们在使用 Terraform 构筑一下 Azure 云资源的时候,直接将所以需要创建的资源全面写在 main.tf 这个文件中,这样写主要是为了演示使用,但是在实际的 Terraform 代码的整个项目代码结构是需要封装具体的 “Module”,这里提到了 ”Module“ 也就是新 ... »

Android事件分发机制三:事件分发工作流程

前言 很高兴遇见你~ 本文是事件分发系列的第三篇。 在前两篇文章中,Android事件分发机制一:事件是如何到达activity的? 分析了事件分发的真正起点:viewRootImpl,Activity只是其中的一个环节;Android事件分发机制二:viewGroup与view对事件的处理 源码解 ... »

JavaScript小记

JavaScript小记 1. 简介 1. 语言描述 JavaScript 是一门跨平台、面向对象的弱类型动态脚本编程语言 JavaScript 是一门基于原型、函数先行的语言 JavaScript 是一门多范式的语言,它支持面向对象程序设计、命令式编程以及函数式编程 其最初被创建的目的是“使网页更 ... »

Sklearn 与 TensorFlow 机器学习实战—一个完整的机器学习项目

本章中,你会假装作为被一家地产公司刚刚雇佣的数据科学家,完整地学习一个案例项目。下面是主要步骤: 项目概述。 获取数据。 发现并可视化数据,发现规律。 为机器学习算法准备数据。 选择模型,进行训练。 微调模型。 给出解决方案。 部署、监控、维护系统。 使用真实数据 学习机器学习时,最好使用真实数据, ... »

分布式链路追踪框架的基本实现原理

本系列共有三篇: .NET Core 中的日志与分布式链路追踪 分布式链路追踪框架的基本实现原理(当前) 开源一个简单的兼容 Jaeger 的框架 柠檬(Lemon丶)大佬在一月份开业了柠檬研究院,研究院指导成员学习分布式和云原生技术,本月课题是分布式链路追踪,学习 Dapper 论文、Jaeger ... »

guava eventbus 原理+源码分析

前言: guava提供的eventbus可以很方便的处理一对多的事件问题, 最近正好使用到了,做个小结,使用的demo网上已经很多了,不再赘述,本文主要是源码分析+使用注意点+新老版本eventbus实现方式对比 一.原理 将定义的hander注册到eventbus中,eventbus遍历该hand ... »

学习Java第三天

方法重载:同一个类,方法名相同,参数不同(个数不同,类型不同,顺序不同),判断是否重载,只看方法名和参数,跟返回值无关。 IDEA查看方法源代码:Crtl + 鼠标左键 进制表示 Java数值默认为十进制 二进制:数值前以0b开头,b大小写都可以 八进制:数值前以0开头 十六进制:数值前以0X开头, ... »

mongodb简单运用

mongodb NoSQL(Not Only SQL),意思是"不仅仅是 SQL",指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL 用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 背景 随着互联网的飞速发展与普及,网民 ... »

pytest学习笔记(pytest框架结构)

一.pytest框架中使用setup、teardown、更灵活按照用例级别可以分为以下几类: 1.模块级:(setup_module、teardown_module)在模块始末调用 2.函数级:(setup_function、teardown_function)在函数始末调用 在类外部 3.类级:( ... »

第一章:起步(python环境搭建)

Python 环境搭建 学习python的第一步,就是要学习python开发环境的配置,在配置好python开发环境后,你需要再安装一款比较趁手的编辑器,事实上,python解释器本身就可以进行一些编辑,但是为了更高效率地开发python相关项目,我们可以借助一些编辑器来提高我们的生产力。 关于py ... »

类初始化和实例化过程

类初始化和实例化过程 类初始化过程 1、一个类要创建实例需要先加载并初始化该类 ​ main方法所在的类需要先加载和初始化 2、一个子类要初始化需要先初始化父类 3、一个类初始化就是执行clinit()方法 ​ clinit每个类都有,自动生成 中文名类初始化方法 ​ clinit方法由静态类变量显 ... »

Vue的核心思想

Vue的核心思想主要分为两部分: 1.数据驱动 2.组件系统 1.数据驱动 在传统的前端交互中,我们是通过Ajax向服务器请求数据,然后手动的去操作DOM元素,进行数据的渲染,每当前端数据交互变化时,可能要重新操作DOM元素,比较繁琐,容易出错; 而vue.js是一种基于MVVM思想的JavaScr ... »

最简单的网站环境搭建

1.购买服务器 ​搭建网站之前,首先你得先有一台服务器,国内国外的都可以,国内的像阿里、腾讯,国外的像BandwagonHost,风评都不错。购买步骤都很简单,这里我就不叙述了。 买了台服务器后,在VNC登陆之后,开启SSH服务。 2.开启SSH服务远程登录 配置SSH参数: ​ 修改sshd_co ... »

Docker 如何动态修改容器端口映射

Docker端口映射往往是Docker Run命令时通过-p将容器内部端口映射到宿主机的指定端口上,一般来说容器的端口所对应的端口是提前确定需要映射的。但是有些情况下不得不需要临时映射端口,例如Docker中运行着MySQL容器,默认端口是不开放的。那么有什么办法可以让运行中的容器暴露指定的端口呢? ... »

Java多线程基础知识笔记(持续更新)

多线程基础知识笔记 一、线程 1.基本概念 程序(program):是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process):是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程(生命周期)。 进程作为资源分 ... »