自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (6)
  • 收藏
  • 关注

原创 redis-1 配置文件详解

一 常用配置二 详细配置# 存储单位说明,不区分大小写# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes################################## INCLUDES #######################

2020-12-30 14:34:56 185

原创 k8s-1 常用命令

一 概述[root@m ~]# kubectl --helpkubectl controls the Kubernetes cluster manager. Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/Basic Commands (Beginner): create 从文件或标准输入创建资源。 expose 使用 replication c

2020-12-30 14:34:15 204

原创 docker-3 资源控制

一 容器资源限制如果不对容器的资源做限制,它就会无限制地使用物理机的资源。查看资源情况 :docker stats1.内存限制--memory Memory limit 如果不设置 --memory-swap,其大小和memory一样 docker run -d --memory 100M --name tomcat1 tomcat2.CPU限制--cpu-shares 权重 docker run -d --cpu-shares 10 --name tomcat2 tomcat二 D

2020-12-02 17:14:31 170

原创 docker-2 Dockerfile

关键字说明指令说明FROM定制的镜像都是基于 FROM 的镜像MAINTAINER标示镜像是谁写的,姓名+邮箱等信息RUN用于执行后面跟着的命令行命令。COPY复制指令,从上下文目录中复制文件或者目录到容器里指定路径。ADDADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)。如果是压缩包则会自动解压CMD类似于 RUN 指令,用于运行程序ENTRYPOINT类似于 CMD 指令,但其不会被 docker ru

2020-12-02 17:14:16 88

原创 docker-1 常用命令

镜像的基本命令1,查看本地镜像docker imagesliujian@liujiandeMacBook-Pro ~ % docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7.30 b84d68d0a7db 6 weeks ago 448MBmysql

2020-12-02 17:13:55 646

原创 java日志框架4-Logback

Logback日志框架笔记一 概述二 入门使用三 配置文件1 日志输出格式2 Appender3 输出配置一 概述Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好。二 入门使用使用过SLF4J日志门面搭建日志系统,,所以在代码是没有区别,主要是通过修改配置文件和pom.xml依赖。依赖 <dependency> <groupId>ch.qos.logback</groupId> <ar

2020-12-02 17:12:48 64

原创 java日志框架3- SLF4J

SLF4J日志框架笔记一 介绍二 使用简单使用三 说明一 介绍全称:Simple Logging Facade For Java 简单日志门面,简称SLF4J。主要功能:它提供了一套标准、规范的日志API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如log4j和logback等二 使用虽然它只是一套标准,但是它自己也有一个简单的日志实现。简单使用引入依赖:<!--slf4j core 使用slf4j必須添加--><dependency>

2020-12-02 17:12:26 71

原创 java日志框架2-LOG4J

ftghj

2020-12-02 17:12:03 114

原创 java日志框架1-java原生的日志框架(JUL)

JUL是java原生的日志框架,在java

2020-12-02 17:11:31 226

原创 抓包工具的使用-tcpdump

TcpDump是Linux中强大的网络数据采集分析工具之一,根据使用者的定义对网络上的数据包进行截获的包分析工具。

2020-12-02 17:02:49 354

原创 kafka消息队列4-命令行相关操作

一 主题操作

2020-07-29 18:22:34 479

原创 kafka消息队列3-深入了解

一 集群1 注册kafka使用zookeeper来维护集群,在broker启动的时候,它会创建一个临时节点把自己的id注册到zookeeper。Kafka集群会订阅这个信息,当有broker加入货退出集群时,Kafka集群会获得通知。2 集群中控制器的选举Kafka集群中的broker会在启动的时候会在zookeeper中创建一个临时节点/controller来让自己成为控制器(主节点)。但是只有一个节点会创建成功,而其他节点会收到该节点已存在的信息,并订阅这个通知。当这个控制器被关闭或者断开连接之

2020-07-27 17:08:28 70

原创 kafka消息队列2-生产者和消费者(Java客户端 数据的发送与接收)

一、生产者二、消费者

2020-07-27 11:15:44 1260

原创 kafka消息队列1-介绍与集群搭建(环境使用docker的centos7,zookeeper集群使用kafka自带的)

一、概述Kafka 是一个分布式的基于发布/订阅模式的消息队列。Kafka 的数据单元称为消息,消息可以理解为数据库里的一个“数据行”或一条“记录”。1. 主题和分区Kaflca 的消息通过主题(topic)进行分类。主题可以被分为若干个分区(Partition),一个分区就是一个提交日志。2. 生产者和消费者生产者生产者创建消息。在默认情况下把消息均衡地分布到主题的所有分区上,也可以指定发送消息到某个分区。消费者消费者读取消息。可以订阅读取一个或者多个主题,按照消息生成的顺序读取

2020-07-19 12:31:40 161

原创 MySql数据库16-提升-高可用-主从复制

一 原理slave会从master读取binlog来进行数据同步。1.步骤master将数据更新日志记录到二进制日志(binary log)中,这些记录过程叫做二进制日志时间,binary log events;slave将master的binary og events拷贝到自己的中继日志(relay log)中。slave还原中继日志中的事件,将数据更新应用到自己的数据库中(该过程是串行化的)。2.原则每个slaver只有一个master每个slaver只能有一个唯一的服务器IDm

2020-07-15 16:59:26 100

原创 MySql数据库15-提升-性能优化5-分析SQL执行带来的开销(show profiles)

一 概述show profile是mysql提供的用来分析当前会话中sql语句执行的资源消耗情况的工具。例如磁盘I/O,上下文切换,CPU,Memory等资源的使用情况。默认处于关闭状态,并保存最近15次的运行结果。二 使用show profiles1.查看是否支持并开启该功能查看mysql> show variables like '%profiling%';+------------------------+-------+| Variable_name |

2020-07-15 15:26:32 255 3

原创 MySql数据库14-提升-性能优化4-慢查询分析

一 概述mysql的慢查询日志,它用来记录mysql中响应时间超过预知的语句,具体指运行时间超过long_query_time的sql,会被记录到慢查询日志中。long_query_time默认值为10,单位为秒。默认情况下,mysql是没有开启慢查询日志的,需要手动来设置这个参数。一般只会在需要调优的时候开启,因为开启慢查询日志会对性能有一点点的影响。二 查看和开启慢查询日志1. 查看是否开启查看当前的慢查询日志是否启用mysql> show variables like '%l

2020-07-15 13:51:31 137

原创 MySql数据库13-提升-性能优化3-多表查询与排序优化

一、IN和EXISTS1.介绍in:查询相当于多个or条件的叠加;in查询的子条件返回结果必须只有一个字段。exists:子句当能返回结果集则为true,不能返回结果集则为false;exists查询的子条件返回结果无限制。2.数据准备继续使用上一篇中的consumer_info表。然后再新建一个user_details_info表。create table user_details_info( id int auto_increment, sex varchar(8) null, a

2020-07-14 13:19:30 592 1

原创 MySql数据库12-提升-性能优化2-索引优化

一、创建测试数据mysql版本5.7.30创建表结构create table consumer_info( id int auto_increment primary key, user_name varchar(32) null, age int null, account_name varchar(32) null, email varchar(64) null,

2020-07-14 10:34:54 114

原创 MySql数据库11-提升-性能优化1-使用EXPLAIN分析执行过程

介绍触发器是与表相关的数据库对象,在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,当前触发器仅支持行即触发,不支持语句级触发。触发器类型NEW和OLD的使用INSERT触发器NEW表示将要或者已经新增的数据UPDATE触发器OLD表示修改之前的数据,NEW表示将要或者已经修改后的数据D

2020-07-14 10:16:39 162

原创 MySql数据库10-提升-性能优化0-索引

索引是什么?索引是一种数据结构,一种可以提高数据库检索目标数据性能的数据结构。数据库还维护着满足特定查找算法的数据结构,实现了高级查找算法。一般来说索引本身也很大,基本上都是以索引文件的形式存储在磁盘上的,唯一索引默认是使用B+树索引。索引的优缺点优点:提高数据的检索效率,降低数据的IO成本,通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。缺点:索引也是一张表,它记录了主键和索引字段,并指向实体表的记录,索引也是要占用磁盘空间的,索引虽然提高了查询速度,但是他会降低更新表数据的速

2020-07-13 18:12:48 103

原创 MySql数据库9-提升-触发器

介绍触发器是与表相关的数据库对象,在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,当前触发器仅支持行即触发,不支持语句级触发。触发器类型NEW和OLD的使用INSERT触发器NEW表示将要或者已经新增的数据UPDATE触发器OLD表示修改之前的数据,NEW表示将要或者已经修改后的数据D

2020-07-13 17:47:53 106 1

原创 MySql数据库8-提升-存储过程和函数4-流程控制

一 分支结构程序从多条逻辑分支中选中一个分支去执行1 if函数语法:IF(表达式1,表达式2,表达式2)如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值2 case结构2.1 语法1类似于java中的switch语句,一般用于等值判断语法:CASE 变量|表达式|字段WHEN 要判断的值1 THEN 返回值1[或语句1;]WHEN 要判断的值2 THEN 返回值2[或语句2;]....ELSE 返回值nEND[CASE]2.2 语法2类似于java中的

2020-07-13 17:47:26 97

原创 MySql数据库7-提升-存储过程和函数3-函数

函数介绍函数和存储过程差不多,都可以提高代码的重用性,简化操作。它们之间的区别:存储过程:可以有任意个返回值,适合做批量的插入和更新。函数:有且仅有1个返回值,适合数据处理,并返回处理结果。函数语法创建语法:CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体 [return 值;]END函数一般都会有return语句,但如果没有也可以函数体中如果只有一句代码则可以省略begin end使用delimiter设置结束标记调用语法

2020-07-13 17:47:05 75

原创 MySql数据库6-提升-存储过程和函数2-存储过程

一 介绍存储过程是什么:一组预先编译好的SQL语句的集合。有什么用:提高代码的重用性;简化操作。减少编译次数并且减少数据库和应用服务之间的连接次数,提高效率。二 语法创建:CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组SQL语句)END如果存储过程体只有一行,则BEGIN END可以省略;存储过程体中的每条sql语句的结尾必须加分号;存储过程的结尾可以使用DELIMITER重新设置;DELIMITER 结束标记参数列表格式:参数模

2020-07-13 16:27:09 67

原创 MySql数据库5-提升-存储过程和函数1-变量

1 系统变量说明:变量由系统提供,属于服务器层面使用的语法。系统变量分为全局变量和会话变量如果是全局变量需要加global,如果是会话级别的变量则加session。默认是session,所有可以不写。global|session:表示global或session。查看所有的系统变量:show global|session variables;查看满足条件的部分系统变量:show global|session variables like '%char%';查看指定的某个系

2020-07-13 16:26:24 70

原创 MySql数据库4-基础-视图的使用

MySql数据库4-基础-视图的使用一、概述二、操作视图1,准备数据2,视图的创建3,视图的使用4,视图的修改5,视图的删除6,视图信息的查看三、操作视图数据1,修改视图数据2,无法修改的视图四、表与视图的对比视图的好处一、概述视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。并且在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。二、操作视图1,准备数据创建一个学生表数据如下:创建一个教师表数据如下:

2020-07-13 16:15:56 118

原创 MySql数据库3-基础-事务(使用和原理介绍)

一、概述

2020-07-13 15:11:02 121

原创 MySql数据库2-基础-约束管理(配置字段约束、自增长列)

目录一、查看表的信息1,查看表结构(约束)2,查看表的索引二、约束1,创建表时设置约束1.1 创建表时添加列级约束1.2 创建表时添加表级约束2,修改约束2.1 添加约束2.2 删除约束3,自增长(标识列)3.1,创建表时设置:3.2,修改表时设置:3.3,查看和修改自增长的配置3.4 字增长列的特点4,主键约束和唯一约束的区别基于mysql5.7.30 docker版本一、查看表的信息1,查看表结构(约束)语法:desc 表名

2020-07-13 14:39:20 150

原创 MySql数据库1-基础-数据库管理(用户、用户权限、schemas库操作)

基于mysql5.7.30 docker版本一,启动mysql镜像1,使用mysql:5.7.30镜像启动一个容器docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=我的密码 -d mysql:5.7.30把容器的3306端口映射到宿主机的3306端口上给root用户设置一个密码此时就可以使用远程工具使用root用户连接该数据库了,当然也可以进入容器使用mysql客户端使用命令行模式来操作数据库。2,修改容器的

2020-07-13 14:16:02 702

原创 java集合-ConcurrentHashMap源码概述(基于JDK1.8)

一,概述

2020-07-03 13:58:01 90

原创 java集合-HashMap源码详解(基于JDK1.8版本)

目录一、概述二、HashMap源码(JDK1.8)1,构造函数:1.1 无参的构造函数1.2 指定初始容量的构造函数1.3 可指定初始容量和加载因子的构造函数2,put方法3,get方法4,对key为null的处理三、HashMap1.7和1.8版本的对比1,底层结构2,数组的初始化3,数组中的元素4,对key为null值时候的处理5,相同的地方四、小结一、概述JDK1.8版本的HashMap相对于1.7版本做了一些优化,比如说在.

2020-07-02 14:55:18 199

原创 java集合-ConcurrentHashMap源码详解(基于JDK1.7版本)

目录一、概述二、源码解读(JDK1.7)1,构造函数:1.1 无参构造函数1.2 有参的构造函数2,put方法2.1ensureSegment(j)2.2 segment的put方法2.3 扩容方法3,get方法三、小结1,加载因子为什么默认是0.75?2,扩容对性能开销大怎么办?3,现在都2020年的,为什么还要看jdk1.7?一、概述ConcurrentHashMap是由Segment数组和HashEntry数组组成。Segment..

2020-07-01 15:14:12 210

原创 java集合-HashMap源码详解(基于JDK1.7版本)

一、HashMap源码解读1,构造函数:共有三个构造函数:HashMap():默认的构造函数,初始容量是16,加载因子为0.75HashMap(int initialCapacity):可以自己设置初始容量,但是会被重置为一个大于等于该值的2的幂次数HashMap(int initialCapacity, float loadFactor):可以自己设置初始容量和加载因子。1.1 默认的构造函数://在构造函数中未指定时使用的加载因子。static final float D

2020-07-01 15:11:57 147

原创 并发编程九-Callable/Future和CompletableFuture介绍

Callable和Future

2020-06-28 17:24:17 1269

原创 并发编程八-ForkJoin

ForkJoinPool该线程池中的线程如果空闲了的时候,会通过工作窃取去执行其他任务队列的等待任务,实现任务的高效处理。如果有一个任务可以拆分成多个小任务,提交到ForkJoinPool线程池去执行,那么可以让该任务更高效的被执行。1,需求:举个例子,比如现在要把从0到30亿这些数字求和,一般的做法就是使用个for循环来依次相加处理。但是如果用Fork/Join的方式来执行的话,就可以把求和操作拆分成多个小任务来执行,然后把每个小任务计算的结果相加,最终就可以得到求和的结果。2,代

2020-06-28 14:54:15 132

原创 并发编程七-并发相关的一些问题

1,锁的分类?锁的分类一般是依据锁的特性、锁的设计、锁的状态等进行分类的:公平锁/非公平锁:公平锁指多个线程按照申请锁的顺序来获取锁,非公平锁多个线程会争抢锁,谁抢到就给谁,所以能会造成优先级反转或者饥饿现象;synchronized 就是非公平锁,ReentrantLock 通过构造参数可以决定是非公平锁还是公平锁,默认构造是非公平锁; 独享锁/共享锁:独享锁是指该锁一次只能被一个线程持有,共享锁指该锁可以被多个线程持有;synchronized 和 ReentrantLock 都是独享锁...

2020-06-20 21:30:24 356

原创 并发编程六-并发工具包(JUC)

一,概述1,juc是什么?jdk提供了一些多线程同步相关的并发工具类,在java.util.concurrent包下,检查juc。2,juc有什么?juc提供了原子操作类、各种锁、线程安全的集合、线程安全的队列等工具类。3,有了synchronized可以同步代码,为什么还有有JUC?来个小示例,模拟业务需求:有三个步骤,每个步骤一个方法,每个方法使用一个线程来负责执行,并且这三个方法是有执行顺序:方法A由线程A来执行,方法B由线程B来执行,方法C由线程C来执行同时三个方法的

2020-06-17 15:45:15 603

原创 并发编程五(AQS)

目录一、假如让我们自己来实现AQS:1,使用自旋来实现2,使用自旋+队列+LockSupport.park()二,AQS介绍1,AQS的状态值和队列1.1状态值state1.2 队列三、AQS获取锁与释放锁1 无线程争抢时1.1 获取锁:reentrantLock.lock():1.2 释放锁:2有线程争抢锁时:2.1 获取锁(失败)--加入等待队列2.2 释放锁一、假如让我们自己来实现AQS:1,使用自旋来实现定义一个状态值state..

2020-06-15 15:38:17 234

原创 并发编程四-原子操作(比较并替换CAS操作)

Java中除了synchronized修饰的代码来保证原子性之外,还有其他方式可以用来保证原子性操作。其中CAS操作就保证了原子性,在JVM层解决并发访问的问题。

2020-06-15 15:37:47 863

ssm-integrated.zip

mybatis整合Spring(SpringMVC): 其中包含了: 1,mybatis的简单实现 2,SpringIOC容器的实现 3,springMVC的实现 4,完成了mybatis,Spring,SpringMVC的整合 5,测试代码

2020-06-05

ssm-integrated.zip

手写实现SpingIOC和SpringMVC的整合项目代码 1,包含了之前写的SpingIOC手写实现的代码(做了一点修改和补充) 2,包含SpringMVC三个组件的代码实现,实现了SpringMVC的简单功能 3,使用了嵌入式tomcat来做测试容器,测试了功能的可用性

2020-06-04

mybatis-salulu.zip

MyBatis单表查询简单功能手写实现代码 和mybatis官网的使用方式一样,基本实现了相同的功能 1,读取配置文件 2,构建session工厂 3,打开sqlsession 4,获取mapper接口对象 5,调用mapper对象的方法类执行sql,对数据库进行操作

2020-05-29

minisp代码.zip

spring IOC 和 DI 基础功能的简单实现源码 包含: 三个注解类,对应的功能和Spring中的@Autowirted,@Component,@ComponentScan的这三个注解功能类似。 两个用于封装数据的类:BeanDefinition,ObjectFactory 一个工具类:BeanDefinitionReaderUtils 还剩余三个类实现了功能逻辑:DefaultListableBeanFactory,AnnotatedBeanDefinitionReader,AnnotationConfigApplicationContext

2020-05-12

Oracle67驱动等jar包

资源里包含ojdbc6-12.1.0.2.jar,ojdbc7-12.1.0.2.jar,ojdbd6.jar,xdb6-12.1.0.2.jar,xmlparserv2.jar,nls_charset12.jar。

2018-07-28

redis-desktop-manager-0.8.8.384

redis-desktop-manager-0.8.8.384可视化工具 官网下载比较慢

2018-01-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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