一、B树和B+树的区别

很明显,我们要想弄清楚原因就要知道B树和B+树的区别。为了不长篇大论。我们直接给出他们的形式总结他们的特点。

1、B树

B树是一种自平衡的搜索树,形式很简单:

阅读全文 »

简介

MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序或者模块对模块的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。

可以简单理解为:将要传输的数据放在队列中。

  • 把数据放在消息队列的称为生产者。
  • 从消息队列中取数据的称为消费者。

目前使用较多的消息队列有ActiveMQRabbitMQKafkaRocketMQ

作者开发中常用的Celery,会选择 RabbitMQRedis作为消息队列 ,蓝鲸平台上也是将kafka作为分布式流处理平台。

阅读全文 »

摘要

VMware vSphere 是 VMware 的虚拟化平台,可将数据中心转换为包括 CPU、存储和网络资源的聚合计算基础架构。vSphere 将这些基础架构作为一个统一的运行环境进行管理,并提供工具来管理加入该环境的数据中心。

在对接或采集VMware vSphere虚拟化平台的场景中,比如配置八爪鱼,需要对其中的虚拟化数据中心、虚拟化集群、物理机、虚拟机、存储等指标进行多方位的采集,我们根据VMware提供的相应sdk接口,对接到蓝鲸的SaaS中。

阅读全文 »

一、索引

B+ Tree 原理

1. 数据结构

B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。

B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。

在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 key 分别是 keyi 和 keyi+1,且不为 null,则该指针指向节点的所有 key 大于等于 keyi 且小于等于 keyi+1。

img

阅读全文 »

二叉搜索树的后序遍历序列

题干
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

阅读全文 »

排序算法分类

  • 内部排序:指在排序期间,元素全部存放在内存中的排序,常见的内部排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、基数排序等。
  • 外部排序:指在排序期间,元素无法完全全部同时存放在内存中,必须在排序的过程中根据要求不断地在内、外存之间移动的排序;
  • 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。
  • 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 常见的非比较类排序算法有:基数排序、计数排序、桶排序
阅读全文 »

前言

之前学了Go语言网络编程,包括HTTP编程、Socket编程,现在我们使用Go实现蓝鲸API接口调用。

总所周知,Python的requests、urllib2都是http请求、爬虫的利器,那么Go语言该怎样做?

话不多说,直接上示例代码。

阅读全文 »

简介

  • Celery 是一款非常简单、灵活、可靠的分布式系统,可用于处理大量消息,并且提供了一整套操作此系统的一系列工具。
  • Celery 是一款专注于实时处理的异步任务队列,可用于处理实时数据以及任务调度。

Celery架构

Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

阅读全文 »

前言

接着Redis数据类型来说,来谈谈Redis的具体使用场景,首先回顾一下:

Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成。那么这些数据结构的使用场景有哪些?以下将用内部编码及使用场景的方式浅析Redis的五种数据类型。

阅读全文 »