自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Warning: (1265, u"Data truncated for column 'XXX' at row 1")问题解决

背景 在使用MySQL数据库时,有时会遇到Warning: (1265, u"Data truncated for column ‘XXX’ at row 1")这样的报错信息。 具体可以考虑哪些问题呢?这里简单记录一下问题原因与解决方法。 报错原因 写入该字段的数据长度大于...

2020-04-17 19:59:20 47 0

原创 MySQL中常用于检索的字符串字段如何创建索引?

背景 我们在业务场景中经常会碰到通过某个字符串查询对应记录的情况。比如常见的邮箱登录、或是手机号登录。 如果不给它创建索引,则MySQL就会进行全局扫描,非常耗时。那么,类似邮箱地址这样的字符串,我们应该如何给它创建索引呢?这里简单介绍几种方法。 几种方法 比如我们有一张表user_info,存储...

2020-04-10 09:43:49 92 0

原创 MySQL中查询表的总行数该用什么命令?

背景 我们经常会使用到一个SQL语句,就是查询某张表的总行数。常常使用的查询命令有几种,比如:select count(*) from t,select count(id) from t(id为主键),select count(1) from t,select count(某普通字段) from ...

2020-03-20 09:25:37 334 0

原创 在Mysql中执行一条SQL,会经历什么?

背景 我们都经常使用Mysql作为数据库来存储与查询较常用的数据。当我们输入一行如SELECT * FROM table_name WHERE id=26这样的语句之后,Mysql如果正确执行的情况下,会输出你想要的信息。 那么,在你输入这行语句之后,一直到它显示出你想要的信息,这中间Mysql都...

2020-03-16 09:56:09 236 0

原创 mysql报错:2003, "Can't connect to MySQL server on ' ' [Errno 99] Cannot assign requested address 解决方法

背景 使用Python脚本高并发的连接Mysql数据库时遇到了此报错。 但是场景不仅限于Python,其它程序在高并发连接Mysql数据库时也可能会遇到此问题。 原因定位 出现该报错信息是因为在高并发连接Mysql数据库时,由于同时连接Mysql数据库的链接过多,且每次连接都是非常短的时间,导致有...

2019-12-11 21:37:26 336 0

原创 VSCode远程连接开发机.md

背景 VSCode可以使用插件远程连接开发机来进行文件的编辑,这样就不用再登录到服务器上进行命令行操作修改文件了,可以提高在服务器上编写文件的效率。 过程 远程主机安装ssh-server 如果已经安装了可以忽略,没安装的可以在网上找教程安装 本地主机安装ssh-client 一般都自带,没有的...

2019-10-29 11:22:04 348 0

原创 Druid安装(单机环境)

背景 本篇文章将简单介绍Druid在单机上的安装与安装过程中可能会遇到的问题。主要目的是供初次接触Druid的同学了解Druid所用。 准备工作 软件 Java8(8u92+) Linux或其他类Unix系统 硬件 4CPU/16GB RAM及以上 下载Druid 将Apache Drui...

2019-10-27 16:11:32 223 0

翻译 Apache Druid设计——Segment

Apache Druid在segment文件中存储数据指标,segment文件用时间参数划分分区。在基础设置中,会为每一个时间间隔创建一个segment文件,该时间间隔可以在granularitySpec的segmentGranularity参数中配置。为了让Druid在繁重的查询压力下保持良好的...

2019-10-26 20:51:19 339 0

翻译 Apache Druid介绍

什么是Apache Druid? Apache Druid是一个专为大数据集的快速切片分析(OLAP查询)而设计的实时分析数据库。Druid作为数据库,最常用于支持以下用例:实时摄取、快速查询和高运行时长。例如,Druid一般用于支持分析型应用程序的GUI,或是需要快速聚合的高并发API后台。Dr...

2019-10-23 11:08:12 1113 0

原创 Golang的值接收者与指针接收者

背景 Go语言中有着面向对象的思想,当我们创建了一个类型之后,可以给这个类型添加不同的方法,给类型添加方法的方式类似于创建一个函数,只是在func和函数名中添加一个(类型名 类型)。这个东西就是所谓的接收者,也就是类型作为接收者接收该函数为自己的方法。有时候我们希望可以更改类型中成员变量的值,而有...

2019-05-23 08:32:45 128 0

原创 数据结构之堆

什么是堆 堆是一种特殊的树,需要满足两点要求: 是完全二叉树 每个节点都大于等于(或小于等于)其左右子节点 注:每个节点都大于等于其左右子节点的叫做大顶堆,每个节点都小于等于其左右子节点的叫做小顶堆。 堆的操作 往堆中插入一个元素 实现:插入堆的末尾后进行从下往上的堆化 删除堆顶元素 实现:...

2018-11-28 09:37:28 65 0

原创 数据结构之红黑树

红黑树的由来 红黑树的引入是用来解决二叉查找树在频繁的插入、删除操作的情况下,可能会出现的性能快速退化的问题。二叉查找树最坏的情况下可能退化为链表,成为O(n)O(n)O(n)的时间复杂度。 用来解决这种问题的二叉查找树叫做平衡二叉查找树,平衡二叉查找树可以保持二叉查找树的高度尽可能的小,以此来使...

2018-11-21 14:53:52 105 0

原创 数据结构之二叉树基础

树是什么 计算机中的树是一种数据结构,它是由n个有限节点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根在上而叶子在下。 树的特点 每个节点有零个或多个子节点 没有父节点的节点称为根结点 每一个非根节点有且只有一个父节点 除了根结点外,每个子节点可以分为多个不相...

2018-11-16 11:33:59 72 0

原创 算法之哈希算法

哈希算法定义 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法。 哈希算法实现的要求 从哈希出来的值不能反向推导出原始数据。也就是说,哈希算法是单向的。 对原始数据十分敏感,输入数据改变一点,输出的数据就会大不相同。 散列冲突的概率要非常小。 哈希算法的执行效率要十分...

2018-11-13 10:35:25 365 0

原创 算法之二分查找

概念 二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到想要查找的元素,或是区间被缩小为0。 时间复杂度 二分查找的时间复杂度为O(logn)O(logn)O(logn) lognlognlogn是一个非常恐怖的数...

2018-11-12 22:30:25 78 0

原创 算法之排序

排序算法是一种非常基础也非常重要的算法。 要选择合适的排序算法为自己的程序做优化,那么就需要了解不同算法优劣的衡量依据。 衡量排序算法的依据 执行效率 1.1 最好时间复杂度、最坏时间复杂度、平均时间复杂度 1.2 在数据规模不大时,低阶、系数、常量也需要考虑 1.3 时间复杂度相同,需要考虑比...

2018-11-09 17:13:21 64 0

原创 算法之递归

何时用递归 需满足三个条件: 一个问题的解可以分解为几个子问题的解 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样 存在递归终止条件 使用递归时注意要点 要注意避免堆栈溢出 要注意不要过量的重复性计算(可以利用map存储计算值) 递归与迭代的区别 递归是函数调用函数自身 ...

2018-11-08 09:34:33 75 0

原创 数据结构之散列表

概述 散列表的英文名叫“Hash Table”,所以,我们也叫它为哈希表。 散列表利用数组支持下标随机访问数据的特性,是数组的一种扩展,由数组演化而来。 散列函数 我们需要把键值key映射为数组的下标。所以需要一个映射的函数,这个映射的函数就是散列函数。 散列函数有三个基本要求: 散列函数计算得...

2018-11-07 09:14:15 112 0

原创 数据结构之跳表

跳表是什么 跳表是一种经过改进的链表。是一种查找效率要比链表更高的带有索引的链表。 跳表是怎么出现的 我们都知道链表相比于数组在存储上很占优势。不过查询时的时间复杂度为O(n),相比于下标随机查找下的数组的时间复杂度O(1)要逊色很多。 所以大家都希望可以对链表的查询时间复杂度做一些提高,就算是要...

2018-11-06 08:27:27 424 0

原创 数据结构之队列

概念 可以把队列想象成排队买票,先来的人先买,后来的人站在队尾排队后买,不允许插队,先进者先出,这就是典型的“队列”。 特点 先进者先出,后进者后出,不允许在中间进行插入、删除操作。 基本操作 入队:在队列的末尾插入元素 出队:在队列的头部取出元素 常见队列 普通队列、循环队列、阻塞队列、并发队列...

2018-11-05 13:11:11 87 0

原创 数据结构之栈

什么是栈 从栈的操作特性上来看,栈是一种 “操作受限”的线性表,只允许在一端插入和删除数据,且满足先进后出、后进先出的特性。 实现一个栈 栈可以用数组或链表来实现,数组实现的叫顺序栈,链表实现的叫链式栈。 栈的时间复杂度 入栈与出栈的时间复杂度均为O(1) 动态扩容的顺序栈 与数组动态扩容类似,用...

2018-10-31 10:19:15 89 0

原创 数据结构之链表

数组和链表对比 数组是连续的内存区域、链表不是连续的内存区域。 因此,数组在通过下标查询时的时间复杂度低,而链表在查询时需要遍历链表,所以时间复杂度较高。 对于插入和删除,因为数组是连续的内存区域,所以每次插入和删除都需要做数据的迁移,因此时间复杂度较高。而链表因为在内存区域本身就不是连续的,所以...

2018-10-30 08:09:24 72 0

原创 数据结构之数组

数组的三种操作时间复杂度 按下标随机查找时间复杂度:O(1) 插入时间复杂度:O(n) 删除时间复杂度:O(n) 查找操作 因为数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。所以,我们在通过下标i查找某个元素的时候,通过计算a[i]_address = base_...

2018-10-29 11:19:11 470 0

原创 算法的复杂度分析

复杂度分析是什么 代码的复杂度分为时间复杂度与空间复杂度。 数据结构与算法解决的核心问题就是让代码更“快”、更“省”。具体来说,就是执行的时间尽可能的短,占用的空间尽可能的少。 而代码到底有多“快”、有多“省”,需要对应的衡量标准,时间复杂度就作为代码有多“快”的衡量标准,空间复杂度就作为有多“省...

2018-10-27 10:06:03 337 0

原创 数据结构与算法学习背景概述

为什么要学习数据结构与算法? 1. 面试必备 站在一个比较现实且功利的角度来看,做计算机技术的大公司,如BAT、Google、Facebook,它们在招聘技术人员时,数据结构与算法是必考查的知识点。如果想要进入这样的大公司,那么掌握数据结构与算法就是必不可少的。 这点作为正在秋招时期的我深有感触。...

2018-10-26 22:41:00 1164 1

原创 python中的if __name__=='__main__'

背景 初学者在学习Python的过程中,一定都遇到过if __name__ == '__main__'这样的语句。那么,这样的一个语句有什么作用呢?在什么时候需要使用这个判断语句呢? 举个例子 执行: def main(): print &quo...

2018-09-10 15:28:25 447 0

原创 计算广告基础

背景 我们都知道,互联网最重要的就是流量与数据。有了流量与数据就有了变现的基础。我们都知道互联网变现大部分要依靠广告,于是近些年在线广告发展突飞猛进。所谓在线广告,指的就是在互联网平台上投放的广告。那么,计算广告又是什么呢?本文大致对计算广告的基础进行讲述。 广告 要说到计算广告是什么,那么...

2018-06-04 17:48:02 214 0

原创 搭建docker镜像私有仓库碰到的问题

之前我有过一篇博客是专门讲如何搭建docker镜像私有仓库的。《搭建docker镜像私有仓库》 最近将docker升级到1.12版本后又搭建了私有仓库。当镜像仓库的容器运行起来之后,我在其它节点上想要拉取该仓库中的镜像,遇到了如下报错: 该报错的原因在于: docker从1.3版本以后对...

2018-05-17 10:29:44 1106 1

原创 Docker底层的内核知识——cgroups

概述 我的上一篇博客Docker底层的内核知识——namespace讲解了内核中支持Docker作资源隔离的机制namespace。本篇文章主要讲述Docker背后内核的另一机制——cgourps。cgroups不仅可以用来限制被namespace隔离的资源,还可以为资源设置权重、计算使用量、操...

2018-05-08 12:25:19 774 0

原创 Docker底层的内核知识——namespace

概述 用过Docker的开发者都知道,Docker容器在本质上是宿主机上的一个进程。也就是常说的容器是操作系统级的虚拟化。容器与容器之间做了资源的隔离,所以在一个容器内部的各种操作会给人一种仿佛在独立的系统环境中的感觉。外部应用对容器进行访问时,也会有这种感觉。而做这种容器资源隔离的Linux内...

2018-04-15 14:36:39 3147 0

原创 Kubernetes的调度器

(本文基于Kubernetes v1.7) 概述 调度器Scheduler是Kubernetes的重要组件之一。其作用是要将待调度的Pod依据某调度策略调度到最适合它运行的节点上运行。这里就涉及到三个对象:待调度的Pod、调度策略、待部署的节点队列。 我们先来看下Scheduler及其相...

2018-03-29 11:19:50 1294 0

原创 Kubelet启动的时候做了什么

(本文基于Kubernetes v1.3)Kubelet是Kubernetes中的重要组件之一。如果把APIServer、Controller Manager、Scheduler比做大脑的话,那么Kubelet毫无疑问就是双手。它是做具体工作的组件。它运行于Slave节点中,监听10250端口,接...

2017-12-28 11:29:20 1382 0

原创 简述微服务

为什么要用微服务架构传统IT架构面临着许多问题比如传统IT构架越来越大之后,更新和修复大型整体式应用变得越来越困难新技术的发展如网络技术的发展、操作系统虚拟化、容器化的发展等,新的轻量级协议如Restful API接口什么是微服务微服务是一种架构风格,一个大型的复杂软件系统可由一个或多个微服务组成...

2017-12-26 20:57:45 296 0

原创 简述Json

Json是一种轻量级的数据交换格式。通俗的说,在我们许多项目中,前后端之间的数据通信格式就是Json。 后端在取到数据对数据进行加工之后,将此数据json.Marshal一下,也就是将此数据转为Json格式,然后将此Json格式的数据返回给前端,前端拿到Json之后会进行json.UnMarsh...

2017-12-25 19:52:36 406 0

原创 在Kubernetes集群中部署Heapster

背景公司的容器云平台需要新增应用的自动扩缩容功能,以便能够更加智能化的对应用进行管理。Kubernetes官方提供了HPA(Horizontal Pod Autoscaling)资源对象。要让我们部署的应用做到自动水平的(水平指的是增减Pod副本数量)进行扩缩容,我们只需要在Kubernetes集...

2017-12-19 09:56:00 5931 1

原创 Kubernetes网络原理

概述Kubernetes的搭建与使用少不了网络基础设施的搭建工作, 本文简述了Kubernetes所需要的网络基础环境,Docker的网络实现以及Kubernetes的网络实现。最后,简单提了一下可以实现这些网络基础的网络开源组件Flannel。希望可以通过这些简单的语言描述,让初学者能够初步了解...

2017-12-18 11:58:28 329 0

原创 Kubernetes的主要组件概述

概述本文试图用简单的语言描述Kubernetes主要组件的作用及其关系。这里我讲解的Kubernetes主要组件有API Server、Controller Manager、Scheduler、kubelet、kube-proxy,其中前三者运行于集群的Master节点,后两者运行于集群的Slav...

2017-12-15 17:32:51 3111 0

翻译 Kubernetes的service mesh——第三部分:将一切加密

导言在本文中,我们将讲述如何使用linkerd作为service mesh在不需要修改任何应用代码的情况下,也能添加TLS至所有的“服务到服务”HTTP请求中。注意:这是关于Linkerd、Kubernetes和service mesh的系列文章其中一篇,其余部分包括: 1. Top-line ...

2017-10-12 09:10:05 489 0

翻译 Kubernetes的service mesh——第二部分:以DaemonSet方式运行linkerd

导言在我们发表的上一篇关于linkerd的文章中提到过,linkerd是使用DaemonSet而非sidecar来安装的。在本文中,我们将解释我们为什么(怎么样)这么做。作为service mesh,linkerd设计为与应用程序代码一起运行。它管理和监控service的内部通信,包括服务发现、重...

2017-10-10 08:09:21 898 0

翻译 Kubernetes的service mesh——第一部分:Service的重要指标

导言什么是service mesh,一个为云平台而设计的应用。它如何被云平台的本地应用使用?本文中,我们将讲述在Kubernetes中如何应用Linkerd作为service mesh,如何捕获和报告顶层服务指标如成功率、请求量和延迟,而不需要更改应用的代码。注意:这是关于Linkerd、Kube...

2017-10-09 08:13:40 6076 0

提示
确定要删除当前文章?
取消 删除