- 博客(34)
- 收藏
- 关注
原创 为什么HikariCP那么快?是线程安全的吗?和c3p0差距在哪?
柜台每次办理业务前要填表、盖章、签字(验证连接有效性),窗口经理(线程)经常偷懒睡觉(资源浪费)。:柜台直接刷脸验证(极速校验),所有窗口全开且自动调度(无锁竞争),没有冗余流程。:HikariCP的“银行”排队时间更短,每秒能处理的客户(请求)更多。
2025-03-20 16:59:13
1051
原创 AI学习——卷积神经网络(CNN)入门
作用:将提取的特征汇总,判断属于哪一类。例子输入:耳朵特征(0.9)、胡须(0.8)、尾巴(0.7)。输出:猫(90%)、狗(5%)、其他(5%)。从识别猫狗到辅助癌症诊断,CNN让计算机真正学会了“看”世界。它的设计灵感源自人类视觉,却又超越了生物局限。下一次当你刷脸解锁手机时,不妨想想:这背后正是无数个卷积核在默默工作,从像素中编织出智能的奇迹。延伸阅读:书籍:《深度学习入门:基于Python的理论与实现》视频:3Blue1Brown的CNN科普论文:AlexNet——CNN里程碑之作。
2025-03-19 17:57:12
3066
1
原创 Redis缓存异常场景深度解析:穿透、击穿与雪崩的攻防策略
在现代分布式系统架构中,缓存作为数据库的前置屏障,承担着流量削峰和响应加速的重要职责。但当缓存系统出现异常时,可能引发链式反应导致系统瘫痪。三者造成的QPS对比显示,穿透场景请求量持续高位,击穿呈现脉冲式峰值,雪崩则表现为阶梯式增长。理解其差异是制定防御策略的前提。
2025-03-18 10:49:01
964
原创 Redis分布式锁深度解析:从原理到高可用实践
简单场景:使用单节点原子SET命令+Lua释放 金融交易场景:采用RedLock+物理时钟同步高吞吐场景:结合本地缓存+Redis分布式锁关键业务:实现锁状态监控+自动熔断机制“分布式锁不是银弹,80%的场景可以通过业务设计避免锁的使用。通过深入理解Redis分布式锁的实现细节,结合业务场景选择合适的方案,才能构建出既可靠又高效的分布式协同系统。
2025-03-17 14:29:23
1146
原创 ZooKeeper的五大核心作用及其在分布式系统中的关键价值
ZooKeeper通过其精妙的设计,在分布式系统领域持续发挥着不可替代的作用。从早期的Hadoop生态到现代的Kafka、Dubbo等系统,ZooKeeper始终是构建可靠分布式架构的基石。随着云原生时代的到来,虽然Etcd、Consul等新秀不断涌现,但ZooKeeper在强一致性场景下的优势依然显著。理解其核心机制,将帮助开发者更好地驾驭分布式系统的复杂性,构建高可用的现代应用架构。
2025-03-14 10:18:58
939
原创 Redis集群模式(Cluster)深度解析:架构设计与数据分片实战
Redis Cluster通过哈希槽分片、Gossip协议和主从复制,构建了一个去中心化的分布式缓存系统。尽管存在跨槽操作限制,但其线性扩展和高可用特性,使其成为大规模互联网应用的理想选择。在实际使用中,需结合业务特点选择分片策略,并严格监控槽位分布与节点健康状态,才能充分发挥Redis Cluster的潜力。
2025-03-14 09:40:31
1469
原创 Redis Sentinel (哨兵模式)深度解析:构建高可用分布式缓存系统的核心机制
在分布式系统架构中,Redis 作为高性能缓存和数据存储解决方案,其可用性直接关系到整个系统的稳定性。这些痛点直接催生了 Redis Sentinel 的诞生,其设计目标直指构建真正的高可用 Redis 服务。
2025-03-12 09:20:29
2619
原创 Redis 主从复制机制深度解析与实践指南
主从复制是一种数据同步机制,允许从节点实时复制主节点的数据。主节点负责处理写操作,从节点默认只处理读操作(需配置 replica-read-only yes)。当主节点数据变化时,从节点通过异步或半同步方式更新自身数据。Redis 主从复制是实现数据高可用和扩展性的基石。通过深入理解其同步机制、合理配置及监控,可以有效提升系统稳定性与性能。在复杂场景中,建议结合 Sentinel 或 Redis Cluster 构建自动化故障恢复体系,以满足企业级高可用需求。扩展阅读Redis 官方复制文档。
2025-03-11 09:58:31
1712
原创 Redis 单线程架构:化繁为简的性能哲学
在分布式系统普遍采用多线程/多进程架构的今天,Redis 却坚持使用单线程模型处理核心业务逻辑,这种看似"反常识"的设计决策背后,隐藏着精妙的设计哲学。本文将深入剖析 Redis 单线程架构的底层密码,揭示其高效运转的奥秘。
2025-03-10 09:30:42
1344
原创 Redis 内存淘汰策略深度解析
Redis 的内存淘汰策略决定了在内存不足时,如何选择需要删除的键来释放空间。基于过期时间的淘汰(volatile-*):仅针对设置了过期时间的键。全局淘汰(allkeys-*):针对所有键,无论是否设置过期时间。Redis 支持以下 8 种内存淘汰策略noeviction:默认策略,禁止写入新数据,直接返回错误。:淘汰最近最少使用(LRU)的设置了过期时间的键。:淘汰最不经常使用(LFU)的设置了过期时间的键。:随机淘汰设置了过期时间的键。。
2025-03-07 16:05:34
2001
原创 Redis 的过期策略与键的过期时间设置
Redis 的过期机制通过惰性删除和定期删除两种策略,实现了内存资源的高效管理。通过合理设置键的过期时间,可以优化 Redis 的性能和内存使用。同时,了解过期机制的实现原理,有助于更好地应对高并发和大数据量的场景。在实际应用中,建议根据业务需求灵活使用 Redis 的过期命令,并结合监控工具和配置优化,确保 Redis 的稳定性和高效性。
2025-03-06 15:30:04
1222
原创 Redis 持久化机制深度解析:RDB 与 AOF 的区别与应用场景
Redis 的 RDB 和 AOF 持久化机制各有优缺点,适用于不同的业务场景。RDB 适合用于数据备份和恢复速度要求高的场景,而 AOF 则适合用于数据安全性要求高的场景。在实际应用中,可以根据业务需求选择合适的持久化策略,或者同时启用两种机制,以兼顾数据安全性和恢复速度。通过深入理解 RDB 和 AOF 的工作原理及其区别,我们可以更好地配置和优化 Redis 的持久化策略,确保数据的安全性和系统的高性能。
2025-03-05 10:21:15
1787
原创 深入解析Redis数据类型:核心特性与应用场景实战
1、优先考虑操作类型:是否需要排序?需要集合运算?需要原子计数?2、评估数据规模:小规模Hash用ziplist更省内存,大规模用hashtable更快。3、警惕“万能String”陷阱:滥用String会导致序列化开销和无法利用原子操作。1、用数据结构表达业务逻辑,而非在代码中实现复杂逻辑。2、通过合理选择Redis数据类型,开发者能够以极简的代码实现高性能、高并发的业务场景,这正是Redis成为互联网基础设施核心组件的关键原因。
2025-03-04 14:32:19
1151
原创 深入解析Redis:核心特性与应用场景
Redis凭借其内存存储、丰富的数据结构和可扩展性,成为高并发系统的核心组件。然而,其适用场景高度依赖内存资源,需结合业务需求合理选择持久化策略与集群方案。在微服务架构中,Redis常与MySQL、Kafka等系统协同,构建高性能、高可用的技术栈。数据需高频访问且容忍内存限制。业务依赖复杂数据结构操作。系统要求亚毫秒级响应延迟。
2025-03-04 09:18:26
1084
原创 深入剖析HashMap:底层原理、扩容机制与线程安全
时空权衡:在哈希碰撞与空间占用间寻找平衡点 渐进式优化:从链表到红黑树的结构演进 并发控制哲学:从完全同步到分段锁再到细粒度锁自适应哈希算法:根据运行时数据特征动态调整哈希函数 无锁化探索:尝试将CAS机制扩展到更多操作场景内存布局优化:针对新一代CPU架构优化缓存行利用率通过深入理解HashMap的设计精髓,开发者不仅能更好地应对面试考察,更能将这些设计思想应用到自定义数据结构的开发中,写出高性能、高可靠的Java应用。
2025-02-28 13:43:07
1229
原创 SpringBoot文件上传实战:存储架构设计与服务器空间优化
文件上传功能的实现质量直接影响用户体验和运营成本。通过合理的存储架构选择、智能的资源优化策略以及严格的安全防护措施,开发者可以构建出既经济高效又安全可靠的文件存储系统。随着业务发展,需要持续监控存储指标并迭代优化策略,在性能、成本和可靠性之间找到最佳平衡点。
2025-02-26 14:19:28
1120
原创 深度对比:MyBatis与MyBatis-Plus的核心差异与部署实践
MyBatis与MyBatis-Plus并非替代关系,而是互补。在大型项目中,可混合使用:核心模块用MyBatis实现复杂逻辑,边缘服务用MyBatis-Plus提升效率。部署时需重点关注依赖冲突、缓存策略和SQL监控,以平衡灵活性与开发效率。
2025-02-25 16:52:18
1022
原创 Spring Boot 3.0整合SwaggerUI:真香警告!开发效率提升100%的API文档神器
自动化API文档生成零配置的接口测试平台完善的权限管理集成多环境适配方案升级建议:随着Spring Boot 3.x的普及,建议所有新项目直接采用springdoc-openapi方案。对于存量项目,迁移成本极低,只需替换依赖和少量注解调整即可。更多高级用法参考官方文档:https://springdoc.org/彩蛋:尝试在SwaggerUI的filter栏输入curl,即可获取当前请求的cURL命令!🎉。
2025-02-24 12:04:44
1419
原创 Spring Boot权限管理:从“门卫大爷“到“AI安保系统“的进化之路
想象你走进一家智能咖啡厅:普通顾客只能点拿铁(基础权限)会员可以免费续杯(高级权限)店长能查看销售报表(管理员权限)这个场景完美映射了RBAC权限模型——每个角色对应一组权限,用户通过角色获得能力。而Spring Boot就是那个帮你构建这套智能门禁系统的"咖啡厅架构师"。
2025-02-23 10:00:00
974
原创 Spring Boot登录状态保存大作战:我是选择“httpsession“还是“token“?
当你纠结该用哪种方式时,不妨想象两种场景:选Session就像开连锁咖啡店,总部统一管理所有门店的会员档案选Token就像加盟奶茶店,每家店都有自己的验券机现代Web应用更像是星巴克(无感支付)和瑞幸咖啡(线上下单),无状态设计才是王道。但别忘了,会话管理永远是安全领域的"瑞士军刀"——关键看你要切的是哪块牛排🥩。
2025-02-22 12:30:00
567
原创 报错com.mysql.cj.jdbc.Driver,解决mybatis-generator报错
我今天自己用的时候遇到的,不管怎么调整配置都还是这个com.mysql.cj.jdbc.Driver错误,今天解决了更大家分享一下成果。
2025-02-21 17:56:58
2541
原创 Spring MVC 与 Spring Boot:从“手动挡”到“自动驾驶”的进化论,兼谈前后端分离的哲学
Spring MVC 与 Spring Boot 的关系,本质是软件工程中永恒的张力:控制 vs 便利透明性 vs 抽象性工匠精神 vs 工业化生产在前后端分离的架构浪潮中,Spring 生态展现出了惊人的适应性。它告诉我们:真正的架构之美,不在于选择某个具体技术,而在于理解不同选择背后的哲学。下次当你写下 @SpringBootApplication 时,不妨想一想:这行注解背后,是 20 年来无数开发者对“更好编程体验”的不懈追求。
2025-02-20 10:34:32
1314
原创 领域驱动设计(DDD)深度解析:从小白到入门
领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,由Eric Evans在其2003年的著作《领域驱动设计:软件核心复杂性应对之道》中首次提出。DDD的核心思想是通过深入理解业务领域,将业务逻辑和规则显式地体现在软件设计中,从而构建出更符合业务需求、更易于维护和扩展的系统。业务与技术对齐:通过通用语言和领域模型,确保开发人员与业务专家理解一致系统结构清晰:通过限界上下文和聚合,明确系统边界和职责划分可维护性提升:业务逻辑集中管理,降低修改影响范围。
2025-02-19 13:49:49
1583
原创 MyBatis性能优化——性能监控与调优全链路实践指南
建立性能基线:上线前进行基准测试,记录关键指标初始值分级处理原则:优先解决P0级问题(崩溃、超时),再优化P1级(体验问题)全链路视角:结合数据库、中间件、网络等多维度分析自动化优先:将常规优化动作纳入CI/CD流水线预防式优化:通过代码审查拦截潜在性能缺陷通过构建"监控-分析-优化-验证"的完整闭环,结合自动化工具与人工经验,可系统化提升MyBatis应用性能。建议每季度进行全面的性能健康检查,建立性能优化专项机制,持续提升系统服务质量。
2025-02-18 10:34:37
1256
原创 MyBatis的性能优化——结果集处理
Override@Override注册处理器:</优先使用精确字段映射复杂对象采用分级加载策略避免过度使用自动映射大数据集采用流式处理分页查询必须优化及时释放无用对象引用一对多优先使用JOIN+JSON聚合多对一采用批量嵌套查询禁用N+1查询模式记录慢结果集映射日志统计类型转换耗时TOP10定期分析内存使用模式通过综合运用上述优化策略,可使结果集处理性能提升3-10倍,内存消耗降低60%以上。建议针对具体业务场景进行组合优化,并建立持续的性能监控机制。
2025-02-17 14:23:23
1200
原创 MyBatis的性能优化——批量操作
批量操作是数据处理场景中的性能关键点,尤其在数据迁移、报表生成等大数据量场景下,优化效果可提升10倍以上性能。
2025-02-17 09:56:13
3016
原创 重启服务器:临时救火还是长久之策?深度探讨缓存溢出与网络超时的解决方案
它背后的原理是什么?某电商网站在大促期间,由于缓存淘汰策略配置不当,Redis 内存爆满,导致大量请求直接打到数据库,引发服务雪崩。在技术实践中,重启服务器不应成为我们的“默认选项”,而应是最后的手段。运维团队重启应用服务器后,服务暂时恢复,但由于未修复连接泄漏代码,问题很快再次出现。重启服务器只是一种应急手段,真正的系统健壮性需要依赖合理的架构设计、完善的监控和代码层面的资源管理。某视频网站在每次大版本发布后,都会通过脚本预先加载热门视频的元数据到 Redis 中,有效避免了冷启动导致的缓存穿透问题。
2025-02-15 07:45:00
1253
原创 保姆级教程,让 iPhone 接入满血 DeepSeek,支持 Siri 唤醒!(亲测可以)
1、首先需要确保iphone有快捷指令这个功能2、从DeepSeek申请的API账户内的需要有余额(目前没有充值入口,需要等待充值入口的开放,今天之前的充值过的API可用)
2025-02-14 14:33:48
9667
12
原创 MyBatis的性能优化——缓存机制深度优化
读多写少的数据优先缓存关键业务数据慎用缓存设置合理的TTL(Time To Live)-- 推荐配置模板 --> < cache eviction = " LRU " flushInterval = " 1800000 " <!-- 30分钟 -- > size="2048"-- 推荐配置模板 --> < cache eviction = " LRU " flushInterval = " 1800000 " <!-- 30分钟 -- > size="2048"
2025-02-14 09:55:15
1147
原创 MD5:密码学舞台的昔日明星与当代困局
这个诞生于1991年的消息摘要算法,曾以革命性的姿态登上历史舞台,又在21世纪初因安全漏洞黯然退场,却在技术惯性中继续活跃于各个角落。今天,当我们重新审视这个密码学活化石时,看到的不仅是一个算法的生命周期,更是一部关于技术进步与安全博弈的启示录。当新一代开发者看着GitHub上3000万次MD5引用记录时,他们需要理解的不仅是密码学原理,更是安全防御的哲学——在这个算力爆炸的时代,我们守护的不仅是数据,更是对抗时间熵增的永恒战役。检查时,这不应是技术债的延续,而应成为安全演进的触发点。
2025-02-13 11:35:39
937
原创 MyBatis的性能优化——SQL语句优化
MyBatis作为一款优秀的持久层框架,凭借其灵活性和易用性在Java开发领域广受欢迎。本文将深入探讨MyBatis的性能优化策略,帮助开发者构建高效稳定的数据访问层。MyBatis的优化方向有以下几个方面:SQL语句优化、缓存机制优化 、批量操作优化、结果集处理优化、高级特性优化、性能监控与调优,下面就需要详细讲一下这些方向。1.1 问题分析1.2 优化方案明确指定字段列表,仅获取必要数据1.3 动态字段选择通过<if>动态控制返回字段(适用于不同场景字段需求差异大的情况):2、索引优化策略
2025-02-12 17:48:25
1768
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅