自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

日常记录

Hello World!

  • 博客(182)
  • 资源 (1)
  • 收藏
  • 关注

原创 Netty 进阶知识 编解码器、Protobuf、TCP粘包、出站入站

首先,在.proto文件中定义您的消息格式。通过这些步骤,可以在 Netty 应用程序中集成 Protobuf,利用其高效的二进制数据序列化/反序列化能力。这对于需要处理复杂数据结构或要求高性能的网络通信应用尤其有用。Protobuf 提供了一种高效、灵活的方式来定义和处理结构化数据。在分布式系统、大数据应用和微服务架构中,Protobuf 是数据交换的理想选择,特别是在对性能和带宽使用有严格要求的场景中。TCP流式传输TCP是面向连接的、面向流的协议,它不保留消息边界。

2024-01-17 11:55:45 1387

原创 Netty 介绍、使用场景及案例

https://github.com/netty/nettyNetty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可扩展的网络服务器和客户端。它是一个开源项目,最初由JBoss公司开发,现在由社区维护。Netty的设计和实现以处理高并发、低延迟、可靠性和灵活性为目标,因此非常适合构建各种网络应用,包括网络服务器、代理、聊天应用、在线游戏、实时通信和分布式系统等。以下是一些Netty的主要特点和优势:异步和事件驱动:Netty采用异步非阻塞的IO模型,允许处理大量并发连接而不会阻塞应用程序线程。

2024-01-11 15:00:43 2016

原创 Java BIO、NIO(通信/群聊系统、零拷贝)、AIO

BIO适用于连接数较少的场景,NIO适用于中等并发场景,而AIO适用于高并发的异步操作场景,如网络服务器、文件传输等。选择适当的I/O模型取决于应用程序的性能和并发需求。

2024-01-09 10:23:15 596

原创 Java jSerialComm库串口通信(USB RS-485/232) 查询/应答、主动上报模式

要在Java中通过USB RS-485接口发送和接收特定的数据帧,你需要利用适当的串行通信库。在Java中,一个常见的选择是使用RXTX或jSerialComm库。这些库允许Java应用程序与串行端口进行通信。

2024-01-03 09:43:27 1312

原创 RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍

RabbitMQ 是一个开源的消息代理(Message Broker),用于在应用程序之间传递消息。它实现了高级消息队列协议(AMQP),提供了可靠的消息传递和消息路由机制,以支持分布式系统的开发。AMQP:AMQP(Advanced Message Queuing Protocol)是一种协议,用于定义消息传递的规范。RabbitMQ是AMQP协议的一个流行实现之一,它允许不同的应用程序之间通过消息进行通信。生产者:生产者是消息的发送方。它们创建消息并将其发布到 RabbitMQ 的交换机上。

2023-12-29 17:21:05 1959

原创 CentOS安装MongoDB

但请注意,在将 MongoDB 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。这在生产环境中是不安全的,因此建议你设置 MongoDB 的身份验证密码以增强安全性。如果你的服务器上启用了防火墙(如Firewalld),你需要确保打开 MongoDB 的监听端口(默认是27017)以允许外部访问。要允许外网访问 MongoDB,你需要在 MongoDB 的配置文件中做一些更改,以及根据你的环境设置防火墙规则。

2023-12-25 15:04:58 1092

原创 Linux CentOS 安装 MySQL 8

CentOS 是 RedHat 的一个分发版本,功能与 RedHat 完全一致。如果已经安装了 MySQL,您可以通过以下步骤卸载它。输入上述命令获取的密码。

2023-12-15 10:45:10 643

原创 Redis KEY*模糊查询导致速度慢、阻塞其他 Redis 操作

在Redis中,使用通配符 `KEYS` 命令进行键的模糊匹配(比如 `KEYS key*`)可能会导致性能问题,尤其是在数据集较大时。这是因为 `KEYS` 命令的实现需要遍历所有的键来匹配模式,这个过程的时间复杂度是 O(N),其中 N 是键的总数,因此**使用KEYS*命令查询时,Redis的响应速度和Redis中数据量成正比**。在大规模的生产环境中,遍历所有键可能会导致阻塞其他 Redis 操作,因为 `KEYS` 命令会持有数据库的写锁。此外,这也可能对性能产生负面影响,因为它需要消耗大量的

2023-12-08 16:29:14 1360

原创 Redis交互速度慢,CPU占用100%,集群方案,报错等问题

## 问题描述:执行top命令发现redis占用达到100%redis交互速度慢,一次要几十到一百毫秒一次## 解决思路查看redis数据量,比如我这里达到了30万经过本地测试,redis交互的速度跟redis交互量成正比,也就是说redis没数据时交互在10ms以内,数据量大的话一次可能花费更久的时间## 集群方案我在本地虚拟机建立了3个主节点3个从节点的redis集群,经过压力测试单节点情况cpu占到30%;改为集群模式redis每个节点占用在10%以下可以得出结论集群方案确实能降

2023-12-04 11:51:59 690

原创 Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等)

这样做完后,使用swagger测试接口大概率会出现"%A8%A1%E6%9D%BF.xlsx"这种格式,这是由于Swagger对文件名进行了URL编码,导致文件名在下载时显示为编码后的形式。Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等)编写下载接口,返回要下载的模版文件,fileName可以根据需要灵活配置。准备文件,这里我放在resource下的templates路径。直接使用浏览器进行Get测试接口,文件编码正常,完美!

2023-09-13 14:57:16 2056

原创 Git commit 通用提交消息规范

一种常见的提交消息规范是使用 “Conventional Commits” 规范,它使用一些预定义的关键字来标识提交的类型和目的。采用这种规范的提交消息有助于清晰地了解每个提交的目的,提高代码审查的效率,追踪项目的变更历史,以及生成有意义的版本发布日志。格式(style):表示提交对代码的格式进行了修改,如缩进、空格、格式化等,但没有改变代码的逻辑。新功能(feature):表示提交引入了新的功能、功能改进或添加新的功能点。撤销(revert):表示提交撤销了之前的提交。

2023-09-11 10:17:58 569

原创 Vue 学习记录与案例总结

https://gitee.com/pikachu2333/vue-learning

2023-09-05 14:27:34 97

原创 23种设计模式介绍+案例演示

对每个设计模式案例增加了详细注释和设计模式的介绍总结。这是一个学习java设计模式案例分析。参考书籍:《图解设计模式》

2023-08-04 13:07:07 75

原创 GitLab不同角色对应的权限

Owner(拥有者):拥有者是项目或组的创建者,拥有最高级别的权限。他们可以添加、删除项目成员,修改项目设置,管理访问权限,并进行项目转让。在组级别,他们还可以添加或删除子组和项目,并管理组设置。Maintainer(维护者):维护者拥有项目中的写入权限,可以推送代码、创建分支,管理问题和拉取请求。他们可以添加、删除项目成员,但不能对项目的高级设置进行修改。Developer(开发者):开发者通常具有项目中的读写权限,可以推送代码和创建分支。他们可以创建问题、合并请求等,但不能修改项

2023-08-04 08:07:55 9145

转载 MySQL 事务日志

为每一个事务分配一个页,是非常浪费的(除非你的事务非常长),假设你的应用的TPS(每秒处理的事务数目)为1000,那么1s就需要1000个页,大概需要16M的存储,1分钟大概需要1G的存储。可以发现每次对数据的变更都会产生一个undo log,当一条记录被变更多次时,那么就会产生多条undo log,undo log记录的是变更前的日志,并且每个undo log的序号是递增的,那么当要回滚的时候,按照序号依次向前推,就可以找到我们的原始数据了。了,当事务提交时,并不会立刻删除undo页。

2023-07-28 09:43:43 170

原创 事务基础知识

命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。能看出在 MySQL 中,只有InnoDB 是支持事务的。

2023-07-28 09:21:03 117

原创 数据库索引优化与查询优化——醍醐灌顶

哪些维度可以进行数据库调优关于数据库调优的知识点非常分散。不同的 DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。虽然 SQL 查询优化的技术有很多,但是大方向上完全可以分成和两大块。

2023-07-27 17:14:45 1375

原创 数据库性能分析工具的使用

定位了查询慢的 SQL之后,我们就可以使用 EXPLAIN 或 DESCRIBE 工具做针对性的分析查询语句。DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。MySQL中有专门负责优化SELECT语句的优化器模块,主要功能: 通过计算分析系统中收集到的统计信息,为客户端请求的Query提供它认为最优的 执行计划 (他认为最优的数据索方式,但不见得是DBA认为是最优的,这部分最耗费时间)。

2023-07-26 14:25:15 180

原创 索引的创建与设计原则

在实际使用中,根据数据表的访问模式和查询需求,选择合适的索引类型,并确保索引的设计能够提高查询性能和数据访问效率。同时,根据数据库的实际负载和查询频率,定期监测索引的性能,对索引进行优化和维护,是保持数据库高性能的关键。

2023-07-25 14:44:28 1632

原创 索引的数据结构

使用索引是为了加快数据库的查询速度和提高数据库的性能。索引是数据库表中的一种数据结构,它可以帮助数据库快速定位并检索所需的数据。当数据库表中的数据量较大时,如果没有索引,数据库系统需要逐行扫描整个表来查找满足查询条件的数据,这将会消耗大量的时间和资源。而有了索引,数据库系统可以根据索引中存储的信息快速缩小查询范围,直接定位到符合条件的数据,从而大大减少查询所需的时间和资源。

2023-07-25 10:24:01 1087

原创 MySQL 字符集

排序规则影响字符在比较和排序时的行为,因为在不同的语言和地区,对字符的排序方式可能有所不同。请注意,在 MySQL 中,“utf8” 和 “utf8mb4” 的存储方式略有不同,“utf8mb4” 的存储空间会稍微多一些,因为它支持更多的字节。例如,“utf8mb4_general_ci” 表示使用 “utf8mb4” 字符集,并采用不区分大小写的排序规则。对于大多数情况下,特别是需要支持表情符号、特殊符号或其他非常用字符的情况,建议使用 “utf8mb4” 字符集,以免出现字符存储和处理的问题。

2023-07-24 16:35:24 920

原创 MySQL8 新特性——公用表表达式用法

在MySQL 8.0及更高版本中,引入了公用表表达式(Common Table Expressions,CTEs),它是一种方便且可重用的临时结果集,类似于子查询,但使用更简洁和易读的语法。CTEs通常用于在复杂的查询中创建临时表,以便于后续查询和分析。

2023-07-24 09:11:05 163

原创 MySQL8 新特性——窗口函数用法

窗口函数的特点是可以分组,而且可以在分组内排序。另外,窗口函数不会因为分组减少原表中的行数,这对我们在原表数据的基础上进行统计和排序非常有用。

2023-07-23 16:39:48 384

原创 MySQL 触发器

MySQL 触发器(Trigger)是一种在数据库中定义的特殊类型的存储过程,它在指定的数据库表上自动执行,当满足特定的触发条件时,触发器会被激活并执行相应的操作。触发器通常用于在数据库表发生特定事件时,自动执行一些操作,如更新其他表的数据、记录日志等。

2023-07-21 13:58:22 464

原创 Redis 数据类型及其常见使用场景

Redis(Remote Dictionary Server)是一种高性能的键值存储数据库,它支持多种数据类型,使其成为广泛应用于缓存、消息队列、计数器、会话存储等场景的理想选择。下面简单介绍 Redis 的常见数据类型及其使用场景。

2023-07-20 14:22:57 153

原创 MyBatis XML方式常用元素用法示例

MyBatis XML 中的元素有很多种,每个元素都有不同的作用和用法。:用于定制 SQL 片段的前缀和后缀,并根据条件进行添加或删除。:用于循环遍历集合或数组,并生成对应的 SQL 语句。:根据条件判断是否包含某个 SQL 片段。:实现条件选择逻辑。

2023-06-28 16:00:15 597

原创 Mybatis注解形式用法

MyBatis 注解形式的用法提供了一种在接口方法上直接定义 SQL 语句和参数映射的方式,使得数据库操作更加简洁和直观。在使用注解形式时,需要确保正确配置了 MyBatis 的注解扫描和相关的配置信息,以便正确地执行数据库操作。除了以上示例,MyBatis 还提供了其他注解和用法,例如动态 SQL 注解(:指定方法参数的名称,在 SQL 语句中引用参数。:执行查询操作,用于查询单个结果或结果列表。:执行插入操作,用于插入数据。:执行更新操作,用于更新数据。:执行删除操作,用于删除数据。

2023-06-28 15:52:20 446

原创 MySQL基本知识复习补充

DDL:数据定义语言。create、alter、drop、rename、truncate(清空表)DML:数据操作语言。DCL:数据控制语言。因为查询语句使用频繁,可以把细分为DQL(数据查询语言),和commit、rollback细分为TCL(事务控制语言)

2023-06-08 16:27:46 2100

原创 Mac/Linux系统idea启动springboot项目慢;Oracle数据库连接:ORA-21561: OID generation failed

我用的黑苹果系统,但是之前遇到过问题就是idea启动spirngboot项目特别特别特别慢!!!要1,2分钟左右,找了好久原因也没找到,怀疑是黑苹果调度问题。直到今天,我尝试连接一个oracle数据库,连不上提示`ORA-21561: OID generation failed`,找了半天原因发现是当前系统的用户的hostname我设置的跟hosts文件不一致,被oracle的安全校验否决了于是我推测在其他项目连接mysql项目时也出现了这个问题,可能mysql用localhost连接不上又帮我试了

2023-04-19 17:22:17 624 1

原创 【软件设计师15】数据结构与算法应用

对应一个规模为n的问题,若该问题可以容易的结局(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归的解决这些小问题,然后将各个子问题的解合并得到原有问题的解。该问题的规模缩小到一定程度就可以容易地解决该问题可以分解为若干个规模较小的相同问题利用该问题分解出的子问题的解可以合并为该问题的解该问题所分解出的各个子问题是相互独立的。

2023-04-16 12:31:03 278

原创 【软件设计师14】UML建模

动态图,表现对象之间的交互关系,强调时间顺序;给出一些对象,引出生命线(竖直虚线),通过交互表达消息的传递一般会把某个消息去掉,让你分析题补充;其次是填对象名

2023-04-14 09:30:25 530

原创 【软件设计师13】数据库设计

例如一对一联系,可以将联系单独做为关系模式,也可以存放到任意一个实体中而一对多要合并只能合并到多这边,不能存放到1多对多则联系必须单独转成一个关系模式。

2023-04-11 08:18:25 349

原创 【软件设计师12】数据流图DFD

基本概念、数据字典、数据平衡原则。

2023-04-10 08:25:53 590

原创 【软件设计师11】面向对象设计

单一职责原则:设计目的单一的类开放-封闭原则:对外扩展开放,对修改关闭里氏(Liskov)替换原则:子类可以替换父类依赖倒置原则:要依赖与对象,而不是具体实现;针对接口编程,不要针对实现编程接口隔离原则:使用多个专门对接口比使用单一的总借口要好组合重用原则:要尽量使用组合,而不是继承关系达到重用目的迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。

2023-04-09 11:07:49 401

原创 【软件设计师10】软件工程

每个阶段分工明确;出现问题可以向上层回溯缺点:需求阶段难以把控,在项目初期,软件的需求几乎是不明确的,等开发完用户往往再提出问题,又回到了需求阶段重新来适用于软件的工程。

2023-04-05 17:12:50 506

原创 【软件设计师09】多媒体技术

感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉、味觉等。表示媒体:信息的表示形式(编码形式)。如:文字、图形、图像、动画、音频、视频等。显示媒体(表现媒体)(易错):表现和获取信息等物料设备。如:输入显示器媒体键盘、鼠标和麦克风等;输出显示媒体显示器、打印机和音响等。说白了输入输出设备。存储媒体:存储数据的物理设备,如磁盘、光盘、内存等。传输媒体:传输数据的物理载体,如电缆、光缆、交换设备等。

2023-04-05 16:20:03 362

原创 【软件设计师08】法律法规(知识产权)

涉及法律法规角度:著作权法、计算机软件保护条例、商标法、专利法试题考点分布角度:保护期限、知识产权人确定、侵权判定知识产权:著作权与邻接权、专利权、工业外观设计权、商标权、地理标志权、集成电路布图设计权。

2023-04-05 14:49:02 61

原创 【软件设计师07】程序设计语言与语言处理程序基础

概念文法类型语法推导树有限自动机与正规式 常见问题:给一个串比如01、10、001等,看图中起点到终点能否连起来得到这样的串正规式是有限自动机到另一个表达形式(1)A. S -> aA -> abS -> abaA -> ababS -> ababaA -> ababab 成立同理推出B、C成立,D无法识别(2)(*表示可以组合任意次数)常规解法很慢,用代入法可以快速推理。

2023-04-05 14:12:24 340

原创 【软件设计师06】数据结构与算法基础

存储和组织数据的方式线性结构、非线性结构包含树(不存在环路)和图(存在环路);从意义上讲图可以包含树,树包含线性结构基本操作单链表删除:p -> next = q -> next单链表插入:s -> next = p -> next;排序的概念稳定与不稳定排序(排序前后原有的相等两个数字的顺序是否改变,比如分数的排名先来后到等)、内排序(在内存进行)与外排序(涉及到外部存储空间)

2023-04-05 11:03:11 642

原创 【软件设计师05】 系统安全分析与设计

防止信息别篡改摘要是信息的特征值,当原始信息发送变化时特征值也会随之改变。单向散列函数(单向Hash函数)、固定长度的散列值常用的消息摘要算法有MD5、SHA等,使用较多的是MD5。SHA算法的散列值分别为128位和160位,密钥较长因此安全性高于MD5。

2023-03-26 10:51:12 348

黑苹果EFT,亲测可用完美适配拯救者Y7000P-10875H

黑苹果EFT,亲测可用完美适配拯救者Y7000P-10875H 唯一问题系统亮度无法调节,但是可以下载Brightness Slider调节亮度 没有积分下载的兄弟萌可私信我看到会回复

2022-03-09

空空如也

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

TA关注的人

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