自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [ElasticSearch] DSL查询

query: 查询条件from和size: 分页条件sort: 排序条件hightlight: 高亮条件创建对象准备,也就是DSL.来构建查询条件传入的query()方法发送请求,得到结果解析结果(参考json结果,从外到内,逐层解析)@Test// 1.创建Request// 2.组织请求参数// 3.发送请求// 4.解析响应// 1.获取总条数System.out.println("共搜索到" + total + "条数据");

2025-06-06 19:22:28 1339

原创 [ElasticSearch] RestAPI

Elasticsearch技术摘要 本文介绍了Elasticsearch RestAPI的使用方法,重点关注索引库创建和文档操作。通过RestHighLevelClient客户端连接ES服务器,实现了以下功能: 初始化连接:使用RestHighLevelClient建立与本地ES服务器的连接 索引库设计:基于商品搜索需求设计Mapping映射结构,包含搜索过滤、排序和展示三类字段 索引操作:提供了创建、删除索引库的API示例代码 关键特性: 采用7.12版本ES客户端,兼容当前项目环境 基于商品搜索实际业务

2025-06-01 21:57:53 1132 1

原创 [ElasticSearch] ElasticSearch的初识与基本操作

本文介绍了Elasticsearch的核心技术倒排索引及其基础概念。主要内容包括: 倒排索引:与正向索引对比,解释了倒排索引如何通过分词和词条映射文档ID实现高效模糊搜索,其查询流程与正向索引相反。 正向索引的局限性:适合精确匹配但不支持部分词条模糊查询,需全表扫描导致效率低下。 Elasticsearch基础概念: 文档和字段:数据以JSON文档存储,数据库中的行转为文档,列转为字段。 索引和映射:同类文档集合管理为索引(如商品索引),类似MySQL表但结构更灵活。 总结指出,倒排索引是Elasticse

2025-05-31 18:40:54 1083 1

原创 [JVM] JVM内存调优

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (93平均质量分)🧀线程与网络(97平均质量分)🍭MySql数据库(95平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2025-05-30 23:29:42 1298

原创 [项目总结] 基于Docker与Nginx对项目进行部署

数据卷(volume)是一个虚拟目录,是容器内目录与宿主即目录之间的映射桥梁html: 放置一些静态资源conf: 放置配置文件如果我们要让nginx代理我们的静态资源,最好是放到html目录,如果我们想要修改nginx的配置,最好是conf下的nginx.conf文件.但是遗憾的是,容器运行的nginx所有文件都在容器内部,所以我们必须利用数据卷将两个目录与宿主机目录关联,方便我们操作.如图:我们创建了两个数据卷: conf,html。

2025-05-25 21:30:29 953 1

原创 [MySQL数据库] SQL优化

本文介绍了在MySQL数据库中插入数据的优化方法,主要包括批量插入、手动控制事务和主键顺序插入。批量插入可以减少网络开销和SQL解析成本,手动控制事务可以降低事务开销和锁的持有时间,而主键顺序插入则能避免页分裂问题,提高性能。此外,文章还详细解释了InnoDB存储引擎中的数据组织方式和页分裂现象,强调了主键顺序插入的重要性。最后,介绍了使用LOAD DATA指令进行大批量数据插入的方法。这些优化策略有助于提高数据库操作的效率。

2025-05-15 21:45:44 842 1

原创 [项目总结] 抽奖系统项目技术应用总结

本文介绍了Redis和RabbitMQ在系统中的应用场景。Redis主要用于缓存验证码、活动详细信息等高频访问数据,以提升系统性能。具体应用包括:1)存储验证码并校验;2)缓存活动信息,减少数据库查询;3)从Redis获取活动信息,未命中时查询数据库并同步到Redis;4)更新抽奖后的活动状态;5)异常时删除Redis记录。RabbitMQ则用于异步处理抽奖请求,将抽奖逻辑与主业务解耦,提升系统响应速度。通过Redis和RabbitMQ的结合,有效优化了系统性能,提升了用户体验。

2025-05-11 21:36:26 1440

原创 [MySQL数据库] InnoDB存储引擎(四): InnoDB磁盘文件

表空间可以理解为MySQL为了管理数据而设计的一种数据结构,主要描述的对结构的定义,表空间文件是对定义的具体实现,以文件的形式存在于磁盘上,以后我们说表空间的时候就说的是表空间文件.InnoDB存储引擎的表空间包括: 系统表空间,独立表空间,通用表空间,临时表空间,撤销表空间.介绍完撤销表空阿金之后详细介绍撤销日志当事务对数据进行修改的时候,每个修改操作都会在磁盘上创建一个与之对应的Undolog,当事物需要回滚时,会根据Undolog逐一进行撤销操作,从而保证事务的原子性。

2025-04-29 22:51:54 812 1

原创 [Spring] Seata详解

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (93平均质量分)🧀线程与网络(97平均质量分)🍭MySql数据库(95平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2025-04-28 23:13:56 1048

原创 [Spring] Sentinel详解

Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。,为了方便监控微服务,我们需要先把Sentinel的控制台搭建出来.启动: 将jar包放在任意中文,不包含特殊字符的目录之下,重命名为sentinel-dashboard.jar访问访问http://localhost:8090/需要输入账号和密码,默认都是:sentinel。

2025-04-28 20:32:58 1345 1

原创 [MySQL数据库] 事务与锁

事务指逻辑上的一组操作,就是把多个操作打包为一个操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务,数据库事务可以有效避免部分执行,部分未执行的中间状态.如果在执行的过程中,我们不使用事务的话,当服务崩溃的时候,整体的数据就会不正确.Atomicity(原子性): 一个事务中的所有操作,要么全部成功,要么全部失败,不会出现之执行了一半的情况,如果事务在执行的过程中发生了错误,那么会触发回滚机制(rollback)

2025-04-26 17:17:28 1131 1

原创 [Redis] Redis最佳实践

key的最佳实践固定格式: [业务名]:[数据名]:[id]足够简短,一般不超过44字节不包含特殊字符value的最佳实践合理的拆分数据,拒绝BigKey选择合理的数据结构Hash结构的entry不要超过1000设置合理的超时时间并不是很慢的查询才叫慢查询,而是Redis在执行耗时超过某个阈值的命令,称为慢查询慢查询的危害: 由于Redis值单线程的,所以当客户端发出指令之后,

2025-04-24 21:48:24 1063 1

原创 [MySQL数据库] InnoDB存储引擎(三): 内存结构详解

关于数据库的索引,我们知道索引分为聚集索引和二级索引由于聚集索引具有唯一性,我们来分析一下聚集索引为什么不能被放入变更缓存,假设表中有一个主键,现在有两条insert语句,都在插入数据id的值相同,那么在变更缓冲区中就存在两个修改的操作,如果以后要合并到缓冲池,这时就会出现重复的主键值,所以聚集索引的修改不能被加入到变更缓冲区.与聚集索引不同,二级索引通常不是唯一的,并且向二级索引中插入数据时由于数据列不同,所以位置相对随机,同样对于删除和更新操作可能会影响不相邻的二级索引页,

2025-04-17 21:53:02 1065 1

原创 [MySQL数据库] InnoDB存储引擎(二) : 磁盘结构详解

这也可以说在问InnoDB存储引擎有什么优点,这个问题我们在上一个章节曾经讨论过.InnoDB引擎支持事务和回滚机制,具有数据的崩溃修复能力,以保证数据的完整性与安全性.InnoDB引擎支持多版本并发操作,采用的是行级锁,具有很高的并发性.InnoDB引擎优化了基于主键的查询,每个InnoDB表都有一个称为聚集索引的主键索引,是B+树的结构,实现通过最少的磁盘IO完成对主键的查找.InnoDB支持外键索引,保证该列创建的数据在另一个表中存在,以保证数据的正确性.

2025-04-08 14:28:56 849 1

原创 [项目总结] 在线OJ刷题系统项目技术应用(下)

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (93平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2025-04-06 16:26:56 1148 1

原创 [项目总结] 在线OJ刷题系统项目技术应用(上)

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (93平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2025-04-05 21:26:46 621 1

原创 [MySQL数据库] InnoDB存储引擎(一) : MySQL架构与常见存储引擎

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (93平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2025-03-30 22:37:48 1005

原创 [MySQL数据库] 索引详解

索引是帮助MySQL高效获取数据的数据结构,在数据之外,数据库还维护着满足特定算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引.索引结构描述B+树索引最常见的索引类型,大部分引擎都支持B+树Hash索引底层数据结构是用Hash表实现的,只有精确匹配索引列的查询才有效,不支持范围查询空间索引空间索引是MyISAM引擎的一个特殊索引类型主要用于地理空间数据类型,使用较少全文索引是一种通过建立倒排索引,快速匹配文档的方式。

2025-03-26 22:58:47 1215 4

原创 [Spring] Spring常见面试题

想要定义一个注解,首先需要使用到元注解来对这个注解进行修饰,第一个是Target注解,表示的是这个注解可以加在什么地方,可以设置加在类上,加在方法上,加在参数前,也可以添加在任何位置.之后需要Retention注解来定义注解的生命周期,可以让注解只在存在于源码阶段,可以存在于字节码阶段和源码阶段,也可以存在于运行阶段,字节码阶段,和源码阶段.之后就可以在注解体中添加属性,使用default关键字指定默认值.SpringAOP在使用创建切点表达式的时候,在annotation。

2025-02-13 20:15:45 1147 4

原创 [RabbitMQ] RabbitMQ常见面试题

producer: 生产者,向RabbitMQ发送消息.Consumer: 消费者,从RabbitMQ接收消息.Broker: RabbitMQ服务器.Connection: 生产者客户端或者是消费者客户端与RabbitMQ服务器之间的网络连接.允许客户端与RabbitMQ之间通行.Channel: 连接里的一个虚拟通道,发送或者是接收消息都是通过通道进行的.Channel和Connection组合起来有点像线程池的模式.

2025-02-09 20:41:25 2343 22

原创 [Redis] Redis分布式锁与常见面试题

在一个分布式的系统中,也会涉及到多个结点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似与"线程安全"的问题.而我们之前在多线程章节学习过的synchronized这样的锁只能在当前进程中生效,在分布式这种多个进程多个主机的场景之下就无能为力了.此时我们就会使用到分布式锁.

2025-02-08 18:10:11 2071 22

原创 [Collection与数据结构] B树与B+树

唯一不同的是在。

2025-01-31 23:35:10 1577 22

原创 [Spring] Gateway详解

在前面,我们通过Eureka,Nacos解决了服务注册,服务发现的问题,使用Spring Cloud LoadBalance解决了负载均衡的问题,使用OpenFeign解决了远程调用的问题.但是当前所有微服务的接口都是直接对外暴露的,可以直接通过外部访问.为了保证对外服务的安全性,服务端实现的微服务接口通常都带有一定的权限校验机制.由于使用了微服务,原本⼀个应用的的多个模块拆分成了多个应用,我们不得不实现多次校验逻辑.当这套逻辑需要修改时,我们需要修改多个应用,加重了开发人员的负担.

2025-01-24 18:20:40 2574 21

原创 [Spring] OpenFeign的使用

OpenFeign是一个声明式的Web Service客户端.它让微服务之间的调用变得更加简单,类似与Controller调用Service,只需要创建一个接口,然后再添加注解就可以使用OpenFeign.

2025-01-22 23:50:51 1458 22

原创 [Spring] Nacos详解

Nacos是阿里巴巴开源的一款易于使用的动态服务发现、配置管理和服务管理平台,致力于帮助用户更轻松地构建、管理和维护微服务架构.功能类似于Eureka,但是又比Eureka强大.官方网站:仓库:prefix默认为的值,也可以通过配置项来配置.即为当前环境对应的profile.当为空时,对应的连接符也不复存在.DataID的拼接格式变成.该配置一般是实现多环境的配置管理.为配置内容的数据格式,可以通过配置项来配置,目前只支持properties类型和yaml类型.默认是properties类型。

2025-01-20 15:13:49 1970 19

原创 [Collection与数据结构] PriorityQueue与堆

前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,,该中场景下,使用队列显然不合适,比如:在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话.在这种情况下,。这种数据结构就是优先级队列(PriorityQueue)。在这种情况下,数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(PriorityQueue)。

2025-01-17 22:49:53 1391 6

原创 [Spring] Eureka & SpringCloud LoadBalance

在最初的架构体系中,集群的概念还不那么流行,且机器数量也比较少,此时直接使用DNS+Nginx就可以满足几乎所有服务的发现.相关的注册信息直接配置在Nginx.但是随着微服务的流行与流量的激增,机器规模逐渐变大,并且机器会有频繁的上下线行为,这种时候需要运维手动地去维护这个配置信息是⼀个很麻烦的操作.所以开发者们开始希望有这么一个东西,它能维护一个服务列表,哪个机器上线了,哪个机器宕机了,这些信息都会自动更新到服务列表上,客户端拿到这个列表,直接进行服务调用即可.这个就是注册中心。

2025-01-16 20:10:42 1562 8

原创 [Spring] SpringCloud概述与环境工程搭建

简单来说,SpringCould是分布式微服务架构的一站式解决方案,是微服务架构落地的多种技术的集合.Distributed/versioned configuration 分布式版本配置Service registration and discovery 服务注册和发现Routing 路由Service-to-service calls 服务调用Load balancing 负载均衡Circuit Breakers 断路器Distributed messaging 分布式消息。

2025-01-14 17:09:10 1738 18

原创 [RabbitMQ] RabbitMQ运维问题

一台RabbitMQ服务器接收消息的数量是有限的,假如一个RabbitMQ的服务器每秒可以接受消息的数量是1000条,但是假如我们每秒钟需要接收10万条消息的时候,这时候我们就必须通过搭建多个RabbitMQ结点来解决问题.RabbitMQ集群允许消费者和生产者在RabbitMQ单个节点崩溃的时候继续运行,当失去一个RabbitMQ结点的时候,客户端可以能过重新连接到集群中的其他任何节点并继续生产或者消费.接下来我们来介绍如何有效搭建一个RabbitMQ集群.需要注意的是我们在搭建一个具有多态服务器的集

2025-01-12 22:12:16 2591 22

原创 [Java基本语法] 反射机制+枚举类+lambda表达式(Java基本语法完结)

Java中的反射机制指的是在运行状态中,对于任意的一个类,我们都可以知道这个类所对应的属性和方法,对于任意的一个对象,都可以调用它的任意的方法和属性.既然可以拿到这些信息,那么我们就可以修改这些信息.这种动态获取信息以及动态调用对象方法的功能,我们称为Java语言的反射机制.Lambda表达式的优点很明显,在代码层次上来说,使代码变得非常的简洁。缺点也很明显,代码不易读。

2024-12-09 21:35:52 1276 39

原创 [Collection与数据结构] 位图与布隆过滤器

基础位运算:二进制右移.:二进制取反.: 有0就是0,全1才是1.: 有1就是1,全0才是0.: 相同为0,相异位1.其实也可以看做是一种无进位相加给定一个数n,确定他的二进制表示的第x位是0还是1可以把这个数字n进行左移x位,之后上一个二进制1,如果结果是1,说明该位是1,如果结果是0,说明该位是0.将一个数n的二进制表示的第x位修改为1.可以把二进制1左移x位,之后n|=左移x位之后的这个数字.将一个数n的二进制表示的第x位修改成0.

2024-12-08 18:17:54 1644 27

原创 [RabbitMQ] RabbitMQ常见应用问题

幂等性是数学和计算机科学中某些运算的性质,它们可以多次被应用,而不会改变初始的结果应用程序的幂等性在应用程序中,幂等性就是指对一个系统的资源进行重复调用,不论多少次请求,这些请求对系统的影响都是相同的效果.比如数据库的select操作,不同时间两次查询的结果不可能不同,但是这个操作是符合幂等性的,需要注意的是,幂等性是对资源的影响,而不是返回结果.查询数据库对数据资源基本不会产生影响.再比如数据库的update操作就不是幂等性的,它会对数据库中的资源造成修改,操作前后的数据资源是不一样的.

2024-12-05 21:18:21 2995 32

原创 [Collection与数据结构] 二叉搜索树,AVL树,红黑树

我们前面讲的二叉搜索树虽然可以缩短查找效率,但是如果数据接近有序,二叉搜索树将会退化为单分支的树,查找元素相当于在顺序表中查找元素,效率及其低下.所以我们可以引入以下的算法来解决,当二叉搜索树种插入新节点的时候,如果可以保证每个节点的左右子树高度之差的绝对值不超过1,即可降低树的高度,从而减少平均搜索的长度.空树是AVL树是AVL树,首先需要是一个二叉搜索树.他的左右子树都是AVL树左右高度之差(简称平衡因子)的绝对值不超过1(也就是每个节点的平衡因子只能为-1,0,1).

2024-12-01 22:47:32 1664 39

原创 [RabbitMQ] 延迟队列+事务+消息分发

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (92平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2024-11-30 21:34:45 2180 19

原创 [RabbitMQ] 重试机制+TTL+死信队列

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (92平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2024-11-23 20:50:36 4343 34

原创 [RabbitMQ] 保证消息可靠性的三大机制------消费者确认,持久化,发送方确认

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (92平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2024-11-22 22:34:06 3337 26

原创 [Redis] Redis服务集群

集群这个词,可以从广义上来理解,也可以从狭义上来理解,其中广义的集群,只要是多个机器,构成了分布式系统。我们前面学过的哨兵模式,也可以算作是一种广义上的集群。狭义上的集群,是redis提供的一种集群模式,在这个集群模式之下,这个集群模式之下,主要解决存储空间不足的问题,即拓展存储空间。我们前面的哨兵模式提高了系统的可用性,哨兵模式中,本质上还是redis主从节点存储数据,其中要是请求一个主节点/从节点,就得存储整个数据的“全集”。但是集群中主要要解决的问题就是要引入多台机器,每台机器存储一部分数据。

2024-11-15 23:43:11 2918 34

原创 [Redis] Redis缓存机制

🏵️热门专栏:🧊 Java基本语法(97平均质量分)🍕 Collection与数据结构 (92平均质量分)🧀线程与网络(96平均质量分)🍭MySql数据库(93平均质量分)🍬算法(97平均质量分)🍃 Spring(97平均质量分)🎃Redis(97平均质量分)🐰RabbitMQ(97平均质量分)

2024-11-11 20:37:25 2585 25

原创 [Redis] Redis哨兵机制

何为Docker,我们一定都听说过一个词,叫做虚拟机.所谓虚拟机就是通过软件,在一个电脑上模拟出另外的一些硬件.但是虚拟机有一个非常大的问题,比较吃配置,这个事情对我们仅有的一台服务器来说,压力山大.Docker可以认为是一个"轻量级"的虚拟机,起到了虚拟机这样的环境隔离的效果,但是有没有吃很多的硬件配置资源.在Docker中,有两个非常重要的概念需要我们做出区分,一个就是"镜像",另一个就是"容器".“镜像"可以看做一个模版或者是一个蓝图。

2024-11-08 23:06:04 2084 14

原创 [Redis] Redis主从复制模式

主从主从,顾名思义就是有的服务式"主"结点.有的是"从"结点.比如我们有三台物理服务器(称为三个节点),此时就可以把其中一个节点,作为"主节点",而另外两个作为"从节点".这时候,从结点就必须听主节点的,从结点的数据要跟随主节点变化,从结点的数据需要和主节点保持一致.也就是主节点原有的数据,在与从结点建立连接之后,就需要把主节点上面的数据复制到从结点上,后续主结点这边对于数据有任何修改,都会把这样的修改也同步给从结点上.说的再简单一点,从结点就是主节点的一个副本.

2024-11-05 22:41:12 2037 18

windows10画图板

windows11的画图板存在bug,什么图层问题,输入文字之后会变模糊,每次输入文字的时候都需要重置字体和字体大小等等的问题,在这里给大家一个旧版本的画图板,就是windows10的画图板,windows10的画图板还是相对好用,在我们今后学习数据结构的时候,画起图来也会非常方便,非常爽~~~.

2024-03-22

空空如也

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

TA关注的人

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