自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis 中 # 和 $ 的区别与使用场景

MyBatis中#{}和${}的主要区别:1)#{}是预编译参数占位符,自动类型转换且防SQL注入;2)${}是字符串拼接,直接替换SQL文本,存在注入风险。使用建议:条件值用#{}确保安全,动态表名/列名等场景才用${},但必须严格校验输入参数。核心原则是优先使用#{},仅在必要场景谨慎使用${}。

2025-08-18 14:00:00 428

原创 Redis 的内存淘汰策略详解

Redis内存淘汰策略解析:1.随机淘汰(Random)实现简单但命中率低;2.TTL淘汰只清理即将过期的key;3.LRU(最近最少使用)保留热点数据,采用近似算法平衡性能;4.LFU(最少频率使用)精准识别热点但开销较大。建议根据业务特点选择:无热点用Random,临时数据用TTL,通用场景选LRU,高频访问需求用LFU。默认配置为noeviction,需主动设置策略。

2025-08-18 09:16:45 563

原创 如何解决 RabbitMQ 中的重复消费问题?

重复消费指的是:同一条消息被消费者处理了多次,导致业务操作重复执行。这种情况可能会导致数据错误或不可预见的业务问题。维度策略说明消费确认方式手动 ACK消费者处理完成后确认,避免误 ACK幂等性控制Redis 去重 + 消息 ID适合高频消息、低延迟业务场景数据库唯一约束利用主键/唯一索引防重复插入适合涉及核心业务数据写入的场景业务幂等设计业务逻辑天然幂等(如按状态更新)设计业务逻辑时确保多次执行无副作用。

2025-08-16 14:00:00 838

原创 如何防止 RabbitMQ 的消息丢失?如何保证消息的可靠传输?

摘要:RabbitMQ消息可靠性保障需从生产者、Broker、消费者三个环节入手。生产者通过PublisherConfirms和ReturnCallback机制确保消息投递;Broker端通过队列/消息持久化结合确认机制防止数据丢失;消费者采用手动ACK避免未处理消息丢失,同时需实现幂等性处理重复消息。此外,镜像队列、死信队列等机制可进一步提升可靠性。相比RocketMQ等事务型中间件,RabbitMQ更适合高吞吐场景,通过组合使用这些机制可构建可靠的消息传输系统。

2025-08-16 09:00:00 1554

原创 Redis 持久化策略详解:RDB、AOF 和混合模式

Redis提供了RDB和AOF两种持久化策略:RDB通过定期快照实现快速恢复但可能丢失数据,适合对实时性要求不高的场景;AOF记录所有写操作确保数据完整性但性能开销较大,适合关键业务系统。混合模式结合两者优势,既保证快速恢复又提高数据安全性。根据业务需求合理选择持久化方案,可有效平衡系统性能与数据一致性。

2025-08-15 14:00:00 563

原创 Redis缓存相关问题及解决方案:缓存雪崩、缓存穿透与缓存击穿

本文探讨Redis在高并发系统中的缓存问题及解决方案:1)缓存雪崩(大量缓存同时失效)可通过设置随机过期时间、热点数据永不过期和限流措施预防;2)缓存穿透(查询不存在数据)可采用布隆过滤器、缓存空值和参数校验应对;3)缓存击穿(热点key失效)可通过分布式锁、数据永不过期和请求排队机制解决。通过合理设计缓存策略和防护措施,可有效提升系统稳定性和可用性。

2025-08-15 09:00:00 613

原创 深入理解 HTTP 请求:GET 与 POST 请求的差异与使用场景

GET和POST是HTTP最常用的两种请求方法。GET请求将数据附加在URL中,适合获取资源,具有幂等性和可缓存性,但安全性较低且有数据量限制。POST请求将数据放在请求体中,适合提交表单或上传文件,安全性更高且无数据大小限制,但不具备幂等性和缓存性。选择时需考虑数据量、安全性和操作性质:GET用于查询数据,POST用于修改数据。这两种方法的正确使用对Web开发至关重要,直接影响应用性能和安全性。

2025-08-11 15:44:25 808

原创 MySQL 索引失效?记住 “模、型、运、函、空、最、快” 七大场景

模糊查询尽量从左前缀开始(保证查询条件与字段类型一致,杜绝隐式转换;避免对索引字段进行运算或函数处理;联合索引需遵守最左前缀原则,合理设计字段顺序;用EXPLAIN分析执行计划,确认索引是否被使用。索引是一把 “双刃剑”,合理使用能显著提升性能,而了解其失效场景是优化查询的基础。记住 “模、型、运、函、空、最、快” 七大场景,让你的索引真正发挥作用!

2025-08-11 09:47:48 978

原创 HashMap、Hashtable和ConcurrentHashMap的区别?

HashMap:非线程安全,适合单线程或自行处理同步的场景,允许null键和值。Hashtable:线程安全,但性能较差,已经不推荐使用,不允许null键和值。:线程安全,采用分段锁机制,适合高并发场景,不允许null键和值,性能优于Hashtable。是现代 Java 开发中并发场景下的最佳选择,它结合了高性能和线程安全的优点,在高并发环境下提供了优异的表现。

2024-09-06 11:43:05 1692

原创 Spring Boot 自动装配原理详解

Spring Boot 的自动装配机制极大地简化了开发人员的工作,它主要依赖于注解来启动自动装配,并通过文件和类找到并加载第三方依赖中的配置类。最后,结合条件装配()的使用,Spring Boot 能够动态决定装配哪些组件,从而实现高效的自动化配置。通过这些机制,开发人员可以专注于业务逻辑,而无需关心底层框架的配置细节,这也是 Spring Boot 成为如此流行的关键原因之一。引入 Starter 依赖和配置类在 Spring Boot 项目中,当我们通过 Maven 或 Gradle 引入某些。

2024-09-05 11:50:13 824

原创 深入解析Spring IOC与AOP:原理与实践

Spring框架通过IOC和AOP为Java开发提供了强大的工具,使得代码更加灵活、模块化和易于维护。IOC通过依赖注入实现了对象之间的解耦,而AOP则通过切面编程将横切关注点从业务逻辑中分离出来。在实际开发中,IOC和AOP经常结合使用,为开发者提供了高度抽象和可配置的解决方案。掌握这两个核心概念是精通Spring框架。

2024-08-13 15:03:29 1079 1

原创 Spring如何解决循环依赖的问题

Spring通过三级缓存机制解决了大部分的循环依赖问题,但仍有特定场景无法处理。理解这些机制和限制,可以帮助我们在设计Bean依赖关系时避免潜在的问题,从而更好地利用Spring框架的功能。

2024-08-10 14:40:38 703 1

原创 JMeter下载与安装【保姆级教程】

Apache JMeter - Apache JMeter™https://jmeter.apache.org/ 找到下载好的压缩包,进行解压 解压好以后放到你想存放的磁盘地址 打开设置,点击系统(默认是系统页面),下滑找到 系统信息,然后点击系统信息 找到高级系统设置,然后点击 找到环境变量,然后点击 进入 点击新建环境变量, 变量名:JMETER_HOME 变量值:jm

2024-01-02 17:49:09 22909 13

原创 本地安装Mysql 8.0(5.7 , 5.0 , 5.1 , 5.5)最简单便捷教程

可以根据项目的需求开启合适的Mysql。下载完成以后是 .zip的压缩文件。可以同时下载多个版本的Mysql。安装成功以后点击进入首页。一、下载PhP集成环境。

2023-12-28 17:02:28 666 1

原创 JDK15下载安装+配置环境变量(保姆级教程)

本文详细介绍了JDK15的安装与配置流程:首先在Oracle官网或通过网盘获取安装包;安装时可按提示修改默认路径;重点配置JAVA_HOME、CLASSPATH和Path三个环境变量;最后通过cmd输入"java -version"验证是否安装成功。配置过程中需注意变量值的正确输入,包括路径符号和百分号的使用。

2023-11-07 21:27:12 4997 2

空空如也

空空如也

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

TA关注的人

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