自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随风飘雁

软件开发技术分享

  • 博客(98)
  • 收藏
  • 关注

原创 使用Jekyll搭建免费的个人博客详细教程

作为程序员,我一直希望有一个独立的个人博客或者网站。但是考虑到做网站,就要卖服务器,域名,还要自己做页面,太麻烦,就一直没有行动。最近了解了Jekyll之后,发现搭建个人博客,是如此简单,而且是完全免费的,所以花点时间,写一下 搭建过程,方便大家参考。总体...

2020-11-25 19:33:17 4450 4

原创 Git使用总结(2020版)

概述内容特点:实际工作经验 + 精心总结,内容全面,实用性强。内容精简,基于命令来讲解 Git 在工作中的应用,快速上手。环境说明:系统:windos 10Git版本:2.26.0-64位一、Git简介1. 集中式vs分布式1.1 集中化的版本控制系统在集中化的版本控制系统中,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 多年以来,这已成

2020-06-13 13:28:08 903

原创 使用Github+PicGo+jsDelivr创建个人图床

在GitHub上创建一个存储库用markdown写文章发布到互联网(如CSDN、简书等),如果要插入本地图片就必须使用图床才能实现。用GitHub创建图床是免费的,没有容量限制,只是单个文件不能超过100M,但正常使用已经足够了。现在来介绍一下如何在github上建一个自己的图床。添加一个存储库(New repositories)命名为:images,用于上传图片文件。上传完图片,就可以...

2020-05-07 21:20:14 653

转载 TCP和UDP协议的原理以及区别

针对这些问题,tcp协议为每一个连接建立了发送缓冲区,从建立链接后的第一个字节的序列号为0,后面每个字节的序列号就会增加1,发送数据时,从数据缓冲区取一部分数据组成发送报文,在tcp协议头中会附带序列号和长度,接收端在收到数据后需要回复确认报文,确认报文中的ack等于接受序列号加长度,也就是下包数据发送的起始序列号,这样一问一答的发送方式,能够使发送端确认发送的数据已经被对方收到,发送端也可以发送一次的连续的多包数据,接受端只需要回复一次ack就可以了。TCP是基于连接的,而UDP是基于非连接的。

2024-01-22 10:33:01 77

转载 mysql为什么要用b+树

一般查询一堆数据会使用到的数据结构是:哈希表、B+树。mysql使用的是B+树。B+树是通过二叉查找树,再由平衡二叉树(B-树)演变而来。但B+树不是二叉树科普:什么叫二叉树⾮叶⼦节点最多拥有两个⼦节点⾮叶⼦节值⼤于左边⼦节点、⼩于右边⼦节点没有值相等重复的节点;二叉树如图:比如:你想找到008,先和006比对,008大于006,则和007比对,一次类推。每一次比对都能排除一半的数据,是不是效率比较高。既然二叉树查询效率比较高,那为啥还需引进平衡二叉树呢?

2024-01-16 15:09:59 172

转载 B+树的B+树与B树的区别

2、而b+树有n棵子树的非叶节点有n个关键字,关键字会存储重复。非叶节点只保存关键字,仅包含子树的最大或者最小的关键字,只用来索引,关键字从小到大排列。1、b树查找相当于二分查找,可以在非叶节点结束,且若经常访问的元素离根节点较近,则访问更加迅速。2、b+树所有叶子节点存储内容包含全部的关键字信息,以及指向关键字记录的指针。1、b树每一个关键字有且只出现一次,且所有关键字按照从小到大的顺序进行排列。2、而b+树的查找路径是由根到叶子节点,每次查找路径长度比较稳定。

2024-01-16 15:02:05 73

转载 MySQL为什么使用B+树,而不是B树?

在MySQL中,B+树被广泛应用于索引结构,因为它支持高效的范围查询和区间扫描,并且有助于减少磁盘I/O操作,从而提高查询效率。为什么MySQL使用B+树而不是B树?

2024-01-16 14:59:04 58

转载 Java中23种设计模式——单例模式

单例模式是一种非常常用的设计模式,在多线程环境下,它可以确保只有一个实例被创建,并提供一种全局访问这个实例的方式。在Java中,可以通过私有构造函数和静态方法实现单例模式。在实现单例模式时,需要注意线程安全性、序列化问题以及反射问题。尽管单例模式非常有用,但也有一些缺点,例如它可能导致代码变得更加复杂,而且在多线程环境下可能会影响性能。因此,在使用单例模式时需要根据具体情况进行权衡。

2024-01-16 10:16:32 67

转载 Redis持久化策略

Redis是基于内存操作,作为一个数据库也具备持久化能力,但是为了实现高效的读写操作,并不会及时进行数据的持久化,而是按照一定的规则进行持久化操作的。AOF(Append Only File),当达到设定的触发条件时,将redis执行的写操作指令存储到aof文件中,redis默认是未开启aof持久化的。操作次数越多,触发持久化的时间间隔就越短(防止数据丢失) ,我们可以通过修改redis.conf文件,来设置RDB策略的触发条件。300s 10次: 当操作次数达到10次,300s就会进行持久化。

2024-01-15 16:01:26 23

转载 MySQL存储引擎:MyISAM和InnoDB的区别

InnoDB: InnoDB是MySQL的另一种存储引擎,支持事务处理和外键约束等功能,能够保证数据的完整性和一致性。它能够实现高效的数据压缩和存储,但是不支持索引和更新操作,仅支持插入和查询操作。总之,MySQL的存储引擎经历了多年的发展和演进,目前已经形成了多种不同的存储引擎,每种存储引擎都有其独特的特点和应用场景,可以根据实际需求来选择合适的存储引擎。Memory: Memory是MySQL的内存存储引擎,能够快速地读取和写入数据,但是它不支持持久性存储,数据会随着MySQL的重启而丢失。

2024-01-15 11:27:13 26

转载 show processlist 详解

是显示用户正在运行的线程,需要注意的是,除了root用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS权限。通常我们通过top检查发现mysqlCPU或者iowait过高 那么解决这些问题 都离不开showprocesslist查询当前mysql有些线程正在运行,然后分析其中的参数,找出那些有问题的线程,该kill的kill,该优化的优化!注意:只显示前100条 我们可以通过显示全部。root。

2024-01-15 10:17:32 117

转载 Java 中创建线程的写法

start 方法创建一个新的线程,本质上就是调用操作系统的API,通过操作系统内核创建新线程的 PCB,并且把要执行的指令交给这个 PCB,当 PCB 调度到 CPU 上执行的时候,也就执行到了线程的 run 方法中的代码了!里的任务是啥,只是语法规则的不同,本质上都是一样的方法,这些方法创建出来的线程都是一样的,随着后面学习的深入,会见识到其他创建线程的方法但大体都是大同小异。上述的 runnable 对象,只是描述了一个任务,这里的写法最主要就是解耦合,目的让线程和线程要干的活之间分离开。

2024-01-11 17:07:20 25

转载 线程安全】死锁问题及解决方案

比如上一次讲到 synchronized 的时候,一个线程,对同一个对象连续加锁两次,如果出现阻塞等待,代表这个锁是不可重入锁,这样的线程,也就称为死锁!一旦程序进入死锁了就会导致线程僵住了,无法继续执行后续的工作了,程序也就出现了严重的 BUG!而死锁这样的情况是很隐蔽的,在开发阶段,不经意间就可能出现死锁的状态!

2024-01-11 10:13:42 32

转载 sql优化常用的方法

要查询的数据就不能只在索引树里找了,得需要回表操作才能完成查询的工作,再加上是左模糊匹配,无法利用索引树的有序性来快速定位数据,所以得在索引树逐一遍历,获取主键值后,再到聚簇索引树检索到对应的数据行,这样实在太累了。union和union all的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的CPU运算,加大资源消耗及延迟。SQL语句中IN包含的值不应过多,MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。

2024-01-10 17:02:28 39

转载 RabbitMQ如何保证消息消费的顺序性?

实际consumer的数量是受限的,不会仅仅因为消息消费太慢而去增加consumer实例的数量,所以通过方案2的方式,可以在不增加consumer实例数量的前提下,加快消息消费的速度。在某些情况下,消息是需要保证顺序性的,如果上图中的data1, data2, data3 分别意味着对某条数据的增改删,但是如果乱序以后就变成了:删改增。产生多个consumer去消费一个queue,极有可能是因为:消息消费太慢,所以盲目让多个consumer同时来消费,而忽略了消息消费顺序性。

2024-01-09 16:56:29 31

转载 RabbitMQ如何保证消息的顺序性【重点】

进行两个数据库的数据同步,由于对数据库的数据操作是具有顺序性的,如果操作顺序搞反,就会造成不可估量的错误。消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常。一定先完成操作,这样就会出现消息并没有按照顺序执行,造成数据顺序错误。,那么原本应该被删除的数据,就没有被删除,造成数据的不一致问题。操作,这个顺序必须是这样,如果在同步过程中,消息的顺序变成了。的执行时间是不固定的,无法保证先读到消息的。去消费,这样就会造成顺序的错误,

2024-01-09 16:52:42 258

转载 网络的七层:深入了解TCP与UDP

在计算机网络的七层模型中,传输层位于网络层之上,是负责提供端到端通信服务的关键一层。在传输层,有两个主要的协议,即TCP和UDP,它们分别为网络通信提供不同的特性和服务。

2024-01-09 14:20:50 30

转载 MySQL索引的设计原则

选择索引的最终目的是为了使查询的速度变快,上面给出的原则是最基本的准则,但不能只拘泥于上面的准则。应该在学习和工作中不断的实践,根据应用的实际情况进行分析和判断,选择最合适的索引方式。

2024-01-08 16:54:20 23

转载 Controller和RestController的区别

注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。的结合体,两个标注合并起来的作用。@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。

2024-01-03 15:10:12 46

转载 linux安装rabbitmq

写入:重启。

2023-11-01 13:57:43 204

转载 linux命令-dd命令详解

linux命令总结-dd命令详解

2023-08-17 11:14:58 1627

转载 log4j日志级别

例如,如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN 4个级别的log能正常输出,而INFO、DEBUG、TRACE、 ALL级别的log则会被忽略。log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。

2023-05-23 09:19:19 497

原创 log4使用案例2

log4使用案例2

2023-02-09 15:31:58 115

转载 springboot集成log4j

log4j使用案例

2023-02-09 15:13:03 405

转载 Linux之swap分区使用进程查看及释放

Linux之swap分区使用进程查看及释放

2023-01-06 09:57:28 3082 2

转载 linux 释放swap空间 ,释放缓存

linux内存机制,释放swap内存

2023-01-06 09:52:12 663

原创 如何释放linux的swap内存

释放linux的swap

2023-01-06 09:47:34 2564

转载 SQL优化

SQL优化

2022-11-09 17:54:59 222

转载 Lambda简介

Lambda简介

2022-11-07 17:33:14 104

转载 Java 8 Lambda 表达式

Java 8 Lambda 表达式

2022-11-07 16:15:26 121

转载 websocket 与 socket

websocket 与 socket

2022-11-03 10:56:40 1202

转载 webSocket和Socket之间的区别联系

webSocket和Socket的概念介绍

2022-11-03 10:34:31 2183

转载 websocket简介

websocket简介

2022-11-02 16:56:37 254

原创 linux top 命令

linux top 命令,查看服务器内存使用情况

2022-10-12 15:03:16 1044

原创 Linux OOM 自动杀死进程问题处理方法

Linux OOM 自动杀死进程问题处理方法

2022-10-12 14:47:46 2220

转载 Linux手动释放缓存的方法

Linux手动释放缓存的方法

2022-10-12 14:12:40 3836

原创 JVM 各参数意义

JVM 各参数意义

2022-10-11 14:20:53 183

原创 jmap常用命令

jmap查看java服务内存占用

2022-10-11 11:33:21 4011

原创 RestTemplate 发送GET请求URL包含特殊字符

RestTemplate 发送GET请求URL包含特殊字符

2022-09-16 14:09:54 1317

转载 在linux下MySQL的常用操作命令

在linux下MySQL的常用操作命令

2022-08-29 17:32:27 351

空空如也

空空如也

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

TA关注的人

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