自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 MySQL相关知识点梳理

一、MySQL架构连接层:处理连接,身份验证等。核心服务层:包含权限判断、查询缓存、解析器、查询优化器、执行引擎等。存储引擎层:负责管理数据的底层组件,定义了如何存储、索引和检索数据。数据存储层:与文件系统进行交互完成数据读写。二、数据库引擎InnoDB: 支持事务;支持行锁;范围查询速度更快;支持外键;数据备份通过binlog,binlog存储的是一个库中所有表中的数据,只能整个库备份,数据量大时备份和恢复麻烦;索引通过B+树和hash实现。MyISAM: 不支持事务;仅支持表锁;范围

2024-05-29 18:42:56 932

原创 JVM知识点总结

③清除阶段:清除所有未被标记为黑色的对象,这些对象被认为不可达,可以回收。将对象标记为三种颜色:白色、灰色和黑色,用于表示对象的可达性状态。②标记阶段:从根对象开始遍历对象,遍历完成的对象标记为黑色;①初始化:根对象标记为灰色,其他对象标记为白色;jstack:生成虚拟机当前时刻的线程快照。jinfo:实时查看和调整虚拟机的各项参数。jps:输出JVM中运行的进程状态信息。jmap:生成虚拟机的内存转存储快照。jstat:虚拟机统计信息监控工具。JConsole:可视化监控工具。

2024-05-17 14:41:34 967

原创 手写LRU算法实现

LRU(Least Recently Used)算法,是一种常用的缓存淘汰策略,优先淘汰最近最少使用的对象。一般通过双向链表和hash表实现。

2024-05-16 16:02:02 193

原创 跳表(SkipList)_手写代码实现_java

跳表java代码实现

2023-12-06 14:33:41 502

原创 Redis知识点总结

Redis 全面梳理,包含Redis特性,Redis应用场景,Redis时间轮,Redis数据结构,Redis扩容机制,Redis底层数据结构,Redis过期删除策略,Redis内存淘汰机制,Redis持久化机制,Redis集群简介 等多方面内容。

2023-03-02 20:28:06 1772

原创 Redis分布式锁

Redis分布式锁,Redis分布式锁实现思路,Redis分布式锁实现代码

2023-02-13 20:50:19 639

原创 MySQL主从复制,读写分离

目的实际生产环境中,一般通过主从复制同步数据,通过读写分离提高负载,两者配合使用提高数据库的并发性能。主从复制主从复制是实现读写分离的基础。MySQL支持的复制类型有三种:①基于语句的复制:在主服务器上执行的sql语句,在从服务器上会执行同样的语句。Mysql默认采用基于语句的复制,效率比较高,但是有时不能实现精准复制。② 基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍。③混合类型的复制:默认采用基于语句的复制,一旦发现基于语句的复制不能精准复制时,就会采用基于行的复制

2023-02-08 21:29:42 452

转载 MySQL索引详解(经典问答)

MySQL索引经典问答

2023-02-08 21:27:34 220

原创 MySQL关键字执行顺序

MySQL关键字解析,MySQL关键字执行顺序

2023-02-08 16:32:55 2001

原创 Prometheus + Grafana + Alertmanager 本地安装调试

Prometheus + Grafana + Alertmanager 本地安装调试

2023-01-30 17:58:51 1262

原创 Error sending alert“ err=“Post “http://ip:port/api/v2/alerts\“: EOF

Alertmanager Error sending alert

2023-01-18 16:27:08 429

原创 DDD入门

说明最近开了一个DDD项目,对DDD进行了了解和学习,所以想要开个专题,记录一下整个项目的落地过程。本篇先分享一下自己对DDD概念的理解,希望对大家有所帮助。简介DDD(Domain-Driven Design,领域驱动设计),是一种软件开发设计思想,其旨在以领域为核心,让软件系统在实现时能准确地围绕真实业务过程建模,专注于业务问题域。DDD是专门解决复杂性的方法论,所以并不是所有项目都应该使用,要根据各自的业务场景进行选择。理论上将,业务场景越复杂,DDD的应用价值越大。DDD从简单来讲,其实只

2021-08-25 20:18:05 454

原创 MySQL事务

简介事务(Transaction):一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)。事务只和DML语句有关,一个完整的业务需要批量的DML(insert、update、delete)语句联合完成。示例:银行转账业务:用户A向用户B转账100元。该情况下,A的余额-100和B的余额+100的操作,要么全部完成,要么全部失败,这就是一个事务。事务四大特征(ACID)A:Atomic,原子性,事务是最小单位,不可再分割。C:Consi

2021-03-12 15:40:17 167 1

原创 MySQL数据库引擎

MySQL支持的数据库引擎有很多,但最主要的有两种:MyISAM 和 InnoDB。MyISAM 和 InnoDB的区别:事务支持不同。MyISAM:强调的是性能,每次查询具有原子性,其执行速度比 InnoDB 类型更快,但是不提供事务支持。InnoDB:支持事务。 具有 事务提交(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities),是事务安全(transaction-safe (ACID compliant))型库表。InnoDB

2021-03-11 20:34:07 308

原创 MySQL数据库索引

索引的分类普通索引: 即针对数据库表任意字段创建索引;唯一索引: 与普通索引类似,不同的就是:MySQL 数据库索引列的值必须唯一,但允许有空值;主键索引: 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引;组合索引: 为了进一步榨取 MySQL 的效率,就要考虑建立组合索引。即将数据库表中的多个字段联合起来作为一个组合索引。MySQL 中的索引类型Normal :普通索引,大多数情况下均可使用。Unique :唯一索引,字段数据唯一,不允许重复的索引,如身份证号

2021-03-11 20:06:32 240

原创 MySQL数据库优化-架构优化-SQL优化

表结构设计优化SQL优化增加缓存层数据库参数配置优化大事务优化分库分表分区主从复制,读写分离升级服务器硬件表结构优化为什么数据库表的设计会影响性能?字段的数据类型:不同的数据类型的存储和检索方式不同,对应的性能也不同,所以说要合理的选用字段的数据类型。比如人的年龄用无符号的unsigned tinyint即可,没必要用integer数据类型的长度:数据库最终要写到磁盘上,所以字段的长度也会影响着磁盘的I/O操作,如果字段的长度很大,那么读取数据也需要更多的I/

2021-03-11 15:34:32 297 1

原创 数据库设计三大范式

简介为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的

2021-03-04 19:37:16 286

原创 MySQL查询缓存

简介大多数的 MySQL 服务器都开启了查询缓存。这是提高性能最有效的方法之一,而且是由MySQL 数据库引擎进行处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。使用场景用于频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。由于查询缓存需要缓存最新数据结果,因此表数据发生任何变化(insert、update、delete或其他可能产生数据变化的操作)

2021-03-04 19:11:20 927 1

原创 Rsa加密算法

简介Rsa是一种非对称加密算法,含有公钥和私钥。既可以使用公钥加密然后私钥解密,也可以使用私钥加密然后公钥解密,但后者的效率比前者慢100~1000倍。特点:1. 便于理解,使用广泛。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。2. 缺点与不足:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。为提高保密强度,RSA密钥至少为500位

2021-03-01 14:14:28 1940

原创 Java读写CSV文件

Maven依赖: <!-- CSV 依赖--> <!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv --> <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifactId>java

2021-03-01 11:14:49 332

原创 HTTP GET请求

Maven依赖: <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency&gt

2021-03-01 10:41:53 636

转载 Netty的使用:Server和Client通信

Netty简介Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。对比于BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高。提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。优势:①并发高;

2021-02-24 10:20:51 634

原创 编写高效优雅Java程序

想要编写高效优雅Java程序,尽可能地满足以下条件:1. 构造器参数过多建议使用builder模式。builder模式使用场景:①.5个或5个以上成员变量;②参数不多,但未来参数会增加;builder模式讲解参考地址:https://zhuanlan.zhihu.com/p/580936692. 不需要实例化的类应该构造器私有。3. 不要创建不必要的对象。①避免无意中创建的对象,如自动装箱循环内因为会自动装箱拆箱,创建无用的对象。② 可以在类的多个实例之间重用的成员变量,尽量使用stati

2021-02-22 15:42:16 220

原创 JVM详解

一、Java内存区域1. 运行时数据区域①程序计数器: 当前线程执行的字节码的行号指示器,用来指示执行哪条指令,线程私有,占用空间小,无法干涉。②栈:线程私有,Java 栈中存放的是一个个的栈帧,每个栈帧对应一个被调用的方法,存储了局部变量表,操作数栈,动态链接,方法出口等信息。方法的执行对应着栈帧在虚拟机栈中入栈和出栈的过程,顶部为当前执行的方法。-Xss128k: 设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。Xss越大,每个线程的大小就越大,

2021-02-20 11:32:07 186

原创 java中发送HTTP/HTTPS的POST请求总结

说明:网上关于“java中发送HTTP/HTTPS的POST请求”的技术文章非常多,有的可用,有的不可用,很难分辨,而这些又在日常开发中经常用到。所以个人对以前使用的三类进行了总结(均参考了网络资料,亲测可用),希望以后自己或者网友能够用到,如有不妥之处,欢迎讨论。发送Form表单类型的POST(HTTP)

2021-01-27 19:43:06 21971 1

原创 Git总结

Git软件下载地址链接:https://pan.baidu.com/s/16MKDytT8mYE4x_cEXOMuHg提取码:dnhh安装完成后:学习思维导图链接:https://pan.baidu.com/s/1peZAHL6fLnhtmgVqc6n2Ug提取码:0z7u说明:该思维导图来自其他大佬,本人不经常敲原始命令,所有不进行详细说明。常用工具TortoiseGit链接:https://pan.baidu.com/s/1uRcrIQGufmxLTKOfUekz2Q提取码:a0j

2021-01-20 14:42:32 89

原创 Springboot整合MQTT

一、Maven依赖<!-- MQTT 相关依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId></dependency><dependency> <groupId>org.springf

2020-12-14 17:07:14 786

原创 java1.8 使用AES/DES加密算法,打包运行后加密算法不可用的解决方案

java1.8 使用AES/DES加密算法,打包运行后加密算法不可用的解决方案问题描述:问题根源:代码:问题描述:项目中使用了AES/DES算法,本地调试没有问题,结果使用maven打包运行后,报异常:java.security.NoSuchAlgorithmException: AES SecretKeyFactory not available网上找了很久一直没找到满意的解决方案,最终自己结合多篇文章自己写了一个工具类。问题根源:JDK自带的AES、DES等加密算法在使用时需要额外引入jar包

2020-08-14 14:50:09 2217

原创 java项目使用System.loadLibrary()加载其他依赖库遇到的坑

java项目使用System.loadLibrary加载其他依赖库遇到的坑当使用System.loadLibrary()调用 Dll,两种方法:1.设定环境变量。比如:所编辑的Dll在目录“D:/cppProjects/nativecode/release”内,将这个路径复制添加到电脑的环境变量中的path变量内即可。2.设定项目属性。(开发推荐)java 命令运行jar包时,使用-Djava.library.path=lib/dll 指定依赖库目录。注意:加载的底层库必须是在java.libr

2020-08-14 14:33:18 3072 2

原创 windows下进行本地进行数据库备份并上传至ftp

windows下进行本地进行数据库备份并上传至ftpbat命令说明参考bat命令:: 设置备份文件存储目录及数据库参数@echo offset dir=F:\databackset database_ip=XXXset database_port=XXXset database_user=XXXset database_password=XXXset database_name=XXXset database_path=C:\Program Files\MySQL\MySQL Serve

2020-08-10 15:39:56 542 2

原创 redis安装

redis本地环境搭建下载压缩包解压完成后,进行下述操作:1.redis 启动打开一个命令窗口,进入到你解压的目录,输入命令:redis-server redis.windows.conf2.部署redis为windows下的服务 命令如下:再打开一个新的命令窗口,输入命令:redis-server --service-install redis.windows.conf3.安装后的启动服务命令:redis-server --service-start4.停止服务命令:redis-server

2020-08-10 15:28:44 218

原创 FastDFS文件服务个人学习总结

FastDFS文件服务总结1. 虚拟机的安装:2. 虚拟机环境配置:3. 虚拟机安装FastDFS+Nginx:4. SpringBoot 整合FastDFS:5. 防盗链:说明:1. 虚拟机的安装:①装VMware;②进入bios界面配置CPU支持虚拟化;(win10 intel F12进入,然后选最后一个选项,之后找到对应位置进行设置)③装系统,本次安装 CentOS7;后续操作均基于CentOS7系统,仅供参考。资源地址:链接:https://pan.baidu.com/s/1SQ_C

2020-08-10 15:22:16 174

原创 实时文件上传进度条的实现

网上实现 实时文件上传进度条 功能的代码很多,不过复杂程度有很大差别,方式也各种各样。作者遇到的情况是这样的:现有页面实现了分片文件上传功能和假的上传进度条,后续要求将进度条改为实时的。 找了一种改动最小的实现方式,核心逻辑:实时获取当前文件的上传进度。 核心代码: ![实时获取当前文件的上传进度](https://img-blog.csdnimg.cn/20190...

2019-09-06 12:23:52 2671

原创 java进行超大zip压缩包解压问题

废话不多说,直接粘代码,里面有踩坑点和注释:

2019-06-20 15:02:07 4553

原创 超大文件上传解决方案:分片断点上传(三)

表结构:需要用到:md5.js,需要下载。

2019-02-13 15:33:57 1362

原创 超大文件上传解决方案:分片断点上传(二)

后端代码:

2019-02-13 15:28:29 1040 2

原创 超大文件上传解决方案:分片断点上传(一)

思路:1.前端进行文件分割,然后上传文件片段;2.后端进行文件接收,和合并操作。前端代码: 后端代码:

2019-02-13 15:15:38 2269 7

原创 MySQL中有则更新,无则插入的语法

MySQL中有则更新,无则插入的语法举例说明:举例:说明:触发条件:实际使用:注意事项:举例说明:举例:例如:字段a被定义为UNIQUE,并且原数据库表table中已存在记录(2,2,9)和(3,2,1),如果插入记录的a值与原有记录重复,则更新原有记录,否则插入新行:INSERT INTO TABLE (a,b,c) VALUES (1,2,3),(2,5,7),(3,3,6),(4,8...

2018-12-14 19:35:01 3268 3

原创 MySQLSyntaxErrorException

MySQLSyntaxErrorException异常信息:Sql语句解决异常信息:Sql语句解决 这个问题,困扰了我大半天。查了n篇博客,最终发现是因为字段使用了MySQL的关键字(group);以后我们在写sql语句时,一定要在字段名前后加上 ``(键盘左上角,Esc下面的)。...

2018-12-14 18:46:07 20986

原创 自动封箱空值报错

自动封箱空值报错案例:案例:Integer=null时,利用自动封箱特性(直接当做int类型使用)时会报空指针异常。

2018-12-14 18:38:48 136

空空如也

空空如也

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

TA关注的人

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