自定义博客皮肤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)
  • 收藏
  • 关注

原创 到底什么是 TCP 连接?

TCP(Transmission Control Protocol,传输控制协议)连接是一种面向连接的、可靠的、基于字节流的传输层通信协议连接。它为应用程序提供了一种可靠的、全双工的通信通道,使得数据能够在网络中的两个端点之间准确、有序地传输。

2025-06-22 09:40:43 759

原创 说说你知道的几种 I/O 模型

I/O(输入/输出)模型是操作系统和网络编程中用于处理数据输入和输出的关键概念,不同的 I/O 模型在性能、响应速度和编程复杂度等方面存在差异。

2025-06-22 09:39:01 774

原创 Redis 性能瓶颈时如何处理?

当 Redis 遇到性能瓶颈时,需要从多个维度进行排查和优化。对于高并发场景,分片集群是最终解决方案,但需权衡运维复杂度。建议优先通过监控定位瓶颈点(如。Redis 性能瓶颈的解决需结合。

2025-06-20 11:47:09 1033

原创 说说 Springboot 的启动流程?

Spring Boot 的启动流程是一个从初始化到环境准备,再到组件扫描与自动配置,最后到 Bean 初始化与依赖注入,以及应用启动完成的完整过程。在这个过程中,Spring Boot 充分利用了 Spring 框架的核心特性,如依赖注入、面向切面编程等,同时提供了自动配置、组件扫描等便捷功能,大大简化了 Spring 应用的开发和部署。

2025-06-19 09:48:26 886

原创 Spring Boot 工程启动以后,我希望将数据库中已有的固定内容,打入到 Redis 缓存中,请问如何处理?

Spring Boot项目中可以通过配置Redis和数据库连接,实现将数据库固定内容预加载到Redis缓存。步骤如下:1)添加Spring Data Redis和数据库驱动依赖;2)配置数据库和Redis连接信息;3)创建实体类和JPA Repository;4)编写服务类在应用启动时从数据库读取数据并存入Redis;5)配置RedisTemplate序列化方式。需注意大数据量时的分批处理、缓存更新机制及合适的序列化方案。这种方法可以有效提升系统性能。

2025-06-19 09:39:12 580

原创 如何使用 Redis 快速实现布隆过滤器?

使用多个不同种子的哈希算法(如 MurmurHash3),或对同一哈希结果进行位移/取模。根据需求选择方案:快速验证可用手动实现,生产环境推荐 RedisBloom。Redis 官方模块,提供原生布隆过滤器命令,优化性能和误判率。操作位数组,结合多个哈希函数计算位置。利用 Redis 的。

2025-06-05 13:41:27 647

原创 如何使用 Redis 快速实现排行榜?

Redis 的是实现排行榜的高效工具,其天然支持按分数排序、范围查询和原子操作。

2025-05-29 11:16:49 980

原创 Redis 中如何保证缓存与数据库的数据一致性?

本文总结了Redis缓存与数据库数据一致性的保障策略,包括Cache Aside、Write Through、Write Behind等模式,以及Binlog监听和分布式锁方案。针对不同业务场景(强一致性/最终一致性/高并发写)给出具体选型建议,强调权衡一致性、性能和复杂度。关键实现细节涵盖延迟双删、重试机制和监控告警,并提供代码示例。最后指出分布式系统中完全强一致性难以实现,通常需通过异步机制确保最终一致性。

2025-05-29 10:36:52 1019

原创 Redis 中如何保证缓存与数据库的数据一致性?

在高并发环境下,Redis 缓存与数据库的数据一致性是一个关键问题。常用的策略包括 Cache Aside 模式、Read/Write Through 模式和 Write Behind 模式。Cache Aside 模式通过先更新数据库再删除缓存来保证一致性,适合大多数场景。Read/Write Through 模式由缓存层管理数据同步,简化了应用程序逻辑。Write Behind 模式则通过异步更新数据库提高写性能,但存在数据丢失风险。此外,双删策略、分布式锁、合理设置缓存过期时间以及数据库变更通知等方法

2025-05-22 10:09:38 910

原创 Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?

缓存击穿:针对热点数据缓存过期或不存在时,大量请求直接访问数据库。解决方案包括互斥锁、永不过期、逻辑过期等。缓存穿透:查询不存在的数据,导致大量请求直接访问数据库。解决方案包括缓存空值、布隆过滤器、接口校验等。缓存雪崩:大量缓存数据过期或缓存服务器故障,导致大量请求直接落到数据库上。解决方案包括过期时间分散、高可用缓存集群、限流与降级等。在实际应用中,应根据具体情况选择合适的解决方案,并结合监控和告警机制,及时发现并处理缓存问题,确保系统的稳定性和性能。点击进入。

2025-05-22 09:58:31 890

原创 Redis 主从复制的实现原理是什么?

Redis主从复制通过主节点处理写操作,多个从节点同步数据并提供读服务,实现数据冗余、读写分离和高可用性。核心流程包括连接建立与身份验证、数据同步阶段(全量复制和增量复制)以及命令传播阶段。关键组件有复制积压缓冲区、复制偏移量与复制ID,异步复制机制确保数据一致性。故障转移可通过手动或自动方式实现,结合Redis Sentinel提升高可用性。实践建议包括监控复制状态、优化缓冲区大小、负载均衡和持久化配合。Redis主从复制是构建分布式缓存系统的基础,具备高效的数据同步和高可用性。

2025-05-13 08:54:11 875

原创 Redis 中常见的数据类型有哪些?

Redis 通过丰富的数据类型,覆盖了从简单缓存到复杂结构化数据的多样化需求。合理选择数据类型可显著提升性能并简化开发逻辑。(String、Hash、List、Set、Zset)和。Redis 常见的数据类型包括。

2025-05-12 09:51:10 1025

原创 为什么 Redis 设计为单线程?6.0 版本为何引入多线程?

Redis 6.0引入多线程的核心目的是优化网络I/O处理,通过分离I/O操作与命令执行,在保持数据一致性的前提下,充分利用多核CPU资源提升高并发场景下的性能,同时保持向后兼容性。

2025-05-12 09:22:12 539

原创 MySQL 中如何进行 SQL 调优?

在MySQL中进行SQL调优是一个系统性工程,需结合索引优化、查询改写、性能分析工具、数据库设计及硬件配置等多方面策略。通过以上策略,可显著提升MySQL查询性能,但需根据实际场景权衡利弊,避免过度优化。

2025-05-10 10:20:51 958

原创 MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?

在 MySQL 中,COUNT(字段名)COUNT(字段名)COUNT(字段名)COUNT(字段名)COUNT(字段名)COUNT(字段名)COUNT(字段名)

2025-05-10 10:17:44 482

原创 Redis 为什么这么快?

它通过牺牲部分功能(如复杂 SQL 查询)换取极致性能,适合高并发、低延迟的场景(如缓存、计数器、实时排行榜)。若需持久化或复杂操作,需合理配置参数以平衡性能与可靠性。

2025-05-09 09:00:50 1032

原创 MySQL 的乐观锁和悲观锁是什么?

在 MySQL 中,和是两种不同的并发控制机制,用于解决多用户/事务同时操作数据时的冲突问题。

2025-05-09 08:47:37 1229

原创 MySQL 中有哪些锁类型?

通过理解锁类型和行为,可有效优化 MySQL 并发性能,避免死锁和性能瓶颈。

2025-05-08 09:36:22 940

原创 MySQL 中的事务隔离级别有哪些?

这些级别通过控制事务间的数据可见性,平衡了数据一致性与并发性能。通过合理选择隔离级别,可在保证数据一致性的同时,优化系统并发性能。

2025-05-08 08:59:32 776

原创 MySQL 中的 MVCC 是什么?

MVCC 是 MySQL InnoDB 存储引擎的核心特性之一,它通过数据版本化和一致性视图机制,在保证事务隔离性的同时,实现了高并发的读写操作。尽管 MVCC 存在一些局限性(如版本链开销和长事务问题),但在大多数场景下,它仍然是提升数据库并发性能的关键技术。是一种用于实现高并发读写操作的机制,它通过维护数据的多个版本来解决读写冲突,从而在保证事务隔离性的同时,减少锁的使用,提升数据库的并发性能。

2025-05-07 08:48:00 1294

原创 MySQL 中长事务可能会导致哪些问题?

在 MySQL 中,长事务(Long-Running Transaction)是指执行时间较长、未及时提交或回滚的事务。长事务的存在可能引发一系列问题,严重影响数据库的性能、稳定性和并发处理能力。长事务是 MySQL 性能优化的重要关注点,可能导致锁阻塞、回滚段膨胀、主从延迟、死锁、MVCC 性能下降等问题。通过合理设计事务、优化 SQL、监控告警和调整参数,可以有效避免或缓解这些问题,确保数据库的高性能和高可用性。

2025-05-07 08:45:05 958

原创 MySQL 是如何实现事务的?

(原子性、一致性、隔离性、持久性),通过多层次机制(如日志、锁、并发控制)保障数据可靠性和一致性。通过合理配置(如隔离级别、日志参数)和优化(如批量提交、避免长事务),可在保证数据一致性的同时提升性能。MySQL 的事务实现基于。

2025-05-06 08:40:52 1042

原创 为什么 MySQL 选择使用 B+ 树作为索引结构?

B+ 树每个节点存储多个键值对(通常可达数百个),通过减少树的高度(通常3-4层即可存储千万级数据)降低磁盘I/O次数。例如,查询1000万条数据时,B+树仅需3-4次I/O,而二叉搜索树可能需要20次以上。相比之下,哈希索引不支持范围查询,二叉搜索树/红黑树I/O次数高,LSM树读放大严重,均无法满足MySQL的综合需求。所有数据存储在叶子节点,非叶子节点仅存储索引键和指针,节省存储空间,提升缓存命中率。例如,1GB索引中非叶子节点可能仅占10%,其余90%为叶子节点数据。

2025-05-06 08:38:26 654

原创 请详细描述 MySQL 的 B+ 树中查询数据的全过程

在 MySQL 中,B+ 树是 InnoDB 存储引擎默认的索引数据结构,用于高效组织数据并支持快速查询。以下是 B+ 树查询数据的。的三步流程,结合磁盘 I/O 优化和内存缓存机制,实现了高效的数据检索。工具分析执行计划,可进一步掌握 B+ 树在查询优化中的具体作用。在理解查询过程前,需明确 B+ 树的。MySQL 的 B+ 树查询通过。通过结合实际业务场景和。

2025-04-30 08:51:00 1392

原创 MySQL 中的索引数量是否越多越好?为什么?

索引的设计应遵循**“够用即可”**原则,在查询性能和写入开销之间找到平衡点。通过监控和优化,确保索引真正服务于高频查询,而非成为系统的负担。在 MySQL 中,索引数量。

2025-04-30 08:48:40 1100

原创 MySQL 中使用索引一定有效吗?如何排查索引效果?

在 MySQL 中建立索引是优化查询性能的关键操作,但若使用不当可能导致存储开销增加、写入效率降低甚至性能反降。:索引设计需平衡查询效率与写入开销,通过。和监控工具持续优化。

2025-04-29 08:42:41 969

原创 在 MySQL 中建索引时需要注意哪些事项?

在 MySQL 中建立索引是优化查询性能的关键操作,但若使用不当可能导致存储开销增加、写入效率降低甚至性能反降。:索引设计需平衡查询效率与写入开销,通过。和监控工具持续优化。

2025-04-29 08:35:06 1186

原创 MySQL 的覆盖索引是什么?

设计阶段优先为高频查询创建覆盖索引使用分析慢查询日志对SELECT *查询建立索引白名单维护阶段定期执行更新统计信息监控比例使用跟踪索引使用率架构优化对报表系统使用覆盖索引+分区表组合对OLTP系统采用宽表拆分+覆盖索引策略对读多写少场景考虑使用只读副本+覆盖索引通过合理设计覆盖索引,可使查询性能提升 3-10 倍,特别是在数据量超过百万级时效果显著。实际应用中需结合业务特点、查询模式和硬件资源进行综合权衡。点击进入。

2025-04-28 09:02:06 851

原创 MySQL 索引的最左前缀匹配原则是什么?

最左前缀匹配原则的本质是 MySQL 复合索引的有序性约束。将高频查询条件列置于左侧将等值查询列放在范围查询列之前避免在索引列上使用函数或计算通过EXPLAIN验证索引使用情况理解并遵循这一原则,可显著提升查询性能,避免因索引失效导致的全表扫描。点击进入。

2025-04-28 08:57:10 853

原创 MySQL 中的回表是什么?

回表指的是:当使用非聚簇索引(二级索引)查询数据时,MySQL 需要先通过索引找到主键值,然后再根据主键值回到聚簇索引(主键索引)中查找完整数据行的过程。

2025-04-28 08:51:50 419

原创 MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?

非聚簇索引(Secondary Index,又称二级索引)**是两种核心索引类型,它们在数据存储结构、查询效率和适用场景上有显著区别。在 MySQL 的 InnoDB 存储引擎中,**聚簇索引(Clustered Index)通过合理设计聚簇索引和非聚簇索引,可以显著提升 InnoDB 表的查询性能。

2025-04-27 15:31:32 927

原创 MySQL 的索引类型有哪些?

MySQL 中的索引是提高查询性能的重要工具,它通过构建数据结构来加速数据检索。MySQL 支持多种索引类型,每种类型适用于不同的场景。根据实际查询需求选择合适的索引类型,并通过。

2025-04-27 09:05:54 1089

原创 Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别?

【代码】Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别?

2025-04-26 16:00:17 908

原创 MySQL 中 SQL 语句的详细执行过程

当一条 SQL 语句在 MySQL 中执行时,它会经历多个阶段的处理。

2025-04-26 10:00:54 1607

原创 RAG 的完整流程是怎么样的?

通过RAG流程,系统能够结合检索到的外部知识和生成模型的能力,提供更准确、更丰富的回答。

2025-04-24 13:56:50 528

原创 什么混合检索?在基于大模型的应用开发中,混合检索主要解决什么问题?

混合检索(Hybrid Retrieval)是一种结合多种检索技术优势的信息检索方法,旨在通过整合不同检索策略提升检索系统的准确性、召回率和适应性。其核心思想是将基于关键词的检索(如BM25、TF-IDF)与基于语义的检索(如向量检索、深度学习模型)相结合,以应对单一检索方法的局限性。关键词检索:基于用户查询中的关键词,快速定位包含这些关键词的文档。语义检索:将用户查询和文档表示为向量,通过计算向量相似度(如余弦相似度)来衡量语义相关性。知识图谱检索。

2025-04-24 13:53:16 763

原创 什么是 RAG 中的 Rerank?具体需要怎么做

RAG 中的 Rerank 是提升检索增强生成系统性能的关键步骤。通过重新排序初步检索的结果,Rerank 可以提高生成内容的相关性和质量,减少幻觉,并优化资源利用。实现 Rerank 需要结合特征提取、排序模型训练和重新排序等步骤,并根据具体应用场景选择合适的技术方法。是指在初步检索出相关文档或文本片段后,利用专门的模型或算法对这些结果进行重新排序,以提升最终生成内容的质量和相关性。其核心目标是通过优化检索结果的排序,使最相关、最可靠的信息优先被用于生成回答,从而减少不相关或低质量内容对生成结果的干扰。

2025-04-23 16:46:02 684

原创 什么是RAG?RAG的主要流程是什么?

*RAG(Retrieval-Augmented Generation)**是一种结合检索与生成技术的框架,旨在通过引入外部知识增强生成模型的性能。其核心思想是:在生成文本时,先从外部知识库中检索相关信息,再将检索结果与原始输入结合,作为生成模型的输入,从而提升生成内容的准确性、相关性和信息量。RAG通过结合检索与生成技术,有效提升了生成模型在知识密集型任务中的表现,是自然语言处理领域的一项重要进展。假设用户提问:“如何缓解气候变化?

2025-04-23 16:25:22 472

原创 MySQL 的索引类型有哪些?

唯一索引是一种特殊的单列索引或多列索引,它要求索引列中的值必须是唯一的(不能有重复值)。MySQL 提供了多种类型的索引,每种索引都有其独特的特点和适用场景。复合索引是基于表中的多个列创建的索引。主键索引是一种特殊的唯一索引,用于唯一标识表中的每一行数据。聚簇索引是一种特殊的索引,数据行的存储顺序与索引顺序一致。单列索引是最基本的索引类型,它基于表中的单个列创建。降序索引可以优化特定的降序查询。• 查询时必须使用索引的最左列,否则索引可能无法被利用。• 可以是普通索引,也可以是唯一索引(不允许重复值)。

2025-02-27 11:24:01 143

原创 MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?

在 MySQL 的 InnoDB 存储引擎中,聚簇索引(Clustered Index)和非聚簇索引(Non-Clustered Index)是两种重要的索引类型,它们在数据存储结构、性能特点和适用场景上存在显著区别。• 更新性能:更新聚簇索引键的值可能导致数据行的物理移动,因为数据的存储顺序需要保持与索引顺序一致。)和基于聚簇索引键的查询,性能非常高,因为数据已经按照索引顺序存储,无需额外的排序或多次查找。• 覆盖索引:当查询的所有列都包含在非聚簇索引中时,可以直接从索引中获取数据,避免回表操作。

2025-02-27 11:20:30 367

基于Springboot的权限管理系统

Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。 核心技术采用Spring Boot 2.1.2以及Spring Cloud (Greenwich.RELEASE) 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件,Elastic Search自行集成。

2025-05-10

企业用户中心项目+SpringBoot

企业核心的用户中心系统,基于springboot后端+React前端的全栈项目,实现了注册、登录、查询等基础功能

2025-05-07

RPC框架,基于 Java + Etcd + Vert.x 的高性能 RPC 框架

基于 Java + Etcd + Vert.x 的高性能 RPC 框架,用新颖的技术栈从 0 到 1 带大家开发轮子。教程由浅入深,可以学习并实践基于 Vert.x 的网络服务器、序列化器、基于 Etcd 和 ZooKeeper 的注册中心、反射、动态代理、SPI 机制、自定义网络协议、多种设计模式(单例 / 工厂 / 装饰者等)、负载均衡器设计、重试和容错机制、Spring Boot Starter 注解驱动开发等,大幅提升架构设计能力。

2025-05-07

空空如也

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

TA关注的人

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