1、Git概述

  • Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
  • Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。

版本控制

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

    Read more »

1、索引单表优化

  • 执行以下SQL脚本,生成测试表。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE IF NOT EXISTS `article` (
    `id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `author_id` INT(10) UNSIGNED NOT NULL,
    `category_id` INT(10) UNSIGNED NOT NULL,
    `views` INT(10) UNSIGNED NOT NULL,
    `comments` INT(10) UNSIGNED NOT NULL,
    `title` VARBINARY(255) NOT NULL,
    `content` TEXT NOT NULL
    );

    INSERT INTO `article`(`author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES
    (1, 1, 1, 1, '1', '1'),
    (2, 2, 2, 2, '2', '2'),
    (1, 1, 3, 3, '3', '3');
    Read more »

1、概述

  • 执行计划,就是一条SQL语句,在数据库中实际执行的时候,一步步的分别都做了什么。也就是我们用EXPLAIN分析一条SQL语句时展示出来的那些信息。

  • 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,进而分析查询语句或是表结构的性能瓶颈。

    Read more »

1、基本介绍

  • 一个正则表达式(regular expression),就是用某种模式去匹配字符串的一个公式。其描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

  • 典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。而通过使用正则表达式,可以做到:

    • 测试字符串内的模式。
    • 替换文本。
    • 基于模式匹配从字符串中提取子字符串。
Read more »

1、RabbitMQ角色分类

角色 特点
none 不能访问management plugin
management ①列出自己可以通过AMQP登入的虚拟机
②查看自己的虚拟机节点virtual hosts的queues,exchanges和bindings信息
③查看和关闭自己的channels和connections
④查看有关自己的虚拟机节点virtual hosts的统计信息,包括其他用户在这个节点virtual hosts中的活动信息
Policymaker ①包含management所有权限
②查看和创建和删除自己的virtual hosts所属的policies和parameters信息
Monitoring ①包含management所有权限
②罗列出所有的virtual hosts,包括不能登录的virtual hosts。
③查看其他用户的connections和channels信息
④查看节点级别的数据如clustering和memory使用情况
⑤查看所有的virtual hosts的全局统计信息
Administrator ①最高权限
②可以创建和删除virtual hosts
③可以查看,创建和删除users
④查看创建permisssions
⑤关闭所有用户的connections
Read more »

1、消息中间件概述

为什么需要使用消息中间件?

  • 具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。

  • 在实际的项目中,大部分的企业项目开发中,在早期都采用的是单体的架构模式,如下图:

    Read more »

SpringBoot的启动流程大致分为创建SpringApplication运行SpringApplication两大步。

  • ①创建SpringApplication。

    • 启动程序执行SpringApplication.run方法,作用是创建了一个Springpplication实例并执行run方法,这里先分析创建一个Springpplication实例的过程,即调用new SpringApplication()。
      Read more »

  • docker网络是docker非常重要的一部分知识,也是docker集群必备的,linux系统在安装完docker后,会多出一个docker0网卡,通过运行ip addr命令可查看到。

Read more »

1、概述

  • docker容器数据卷:当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的,但是其中产生的部分内容我们是希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,我们希望在运行过程钟产生的部分数据是可以持久化的的,而且容器之间我们希望能够实现数据共享。
    • 数据卷可以在容器之间共享或重用数据。
    • 数据卷中的更改可以直接生效。
    • 数据卷中的更改不会包含在镜像的更新中。
    • 数据卷的生命周期一直持续到没有容器使用它为止。
Read more »