- 博客(33)
- 问答 (1)
- 收藏
- 关注
原创 如何监控Redis缓存的穿透、击穿和雪崩?
监控Redis缓存的穿透、击穿和雪崩问题,需要从多维度进行指标采集和异常检测。针对穿透问题,关注空命中次数和缓存命中率;击穿问题监控热点key访问频次和分布式锁竞争;雪崩问题则需监测批量key过期和集群健康状态。实现方案包括:通过Redis原生命令和Prometheus采集基础指标,业务层埋点统计关键数据,结合ELK日志分析和APM全链路追踪。设置分级告警策略,如空命中超阈值、节点宕机等触发紧急通知。建议采用Prometheus+Grafana+ELK+APM工具组合,实现分层监控和历史数据对比,并定期演练
2025-11-28 17:09:00
830
原创 Redis 缓存中,穿透、击穿、雪崩的区别是什么?如何避免?
Redis缓存异常场景分析:穿透、击穿、雪崩的区别与解决方案 摘要: Redis缓存使用中常见的三种异常场景:穿透(访问不存在的key)、击穿(热点key过期)、雪崩(批量key过期/服务宕机)。穿透可通过布隆过滤器拦截或缓存空值解决;击穿可采用分布式锁或逻辑过期策略;雪崩需通过随机过期时间、集群高可用和服务降级来应对。企业级实践中建议组合使用多种方案,如布隆过滤器+空值缓存应对穿透,逻辑过期+分布式锁处理击穿,随机过期+集群高可用防范雪崩。同时需注意缓存空值的过期时间、锁粒度和降级策略的合理性。
2025-11-27 17:20:42
1836
原创 单例模式、工厂模式、策略模式、观察者模式在 Spring Boot 中的应用
在 Spring Boot 中,设计模式被广泛应用于框架底层实现和业务开发优化。以下结合四种模式,详细说明其在 Spring Boot 中的具体应用场景及代码示例。
2025-11-27 14:29:41
562
原创 cmd和powershell和bash的区别
本文对比了Java后端开发常用的三种终端工具:cmd、PowerShell和bash。cmd是Windows基础终端,适合简单操作;PowerShell是Windows现代化终端,支持自动化脚本和.NET生态;bash是跨平台行业标准,适合Linux服务器部署。文章从核心区别、使用场景、语法差异等方面详细分析,建议开发者优先掌握bash(服务器场景)和PowerShell(Windows自动化),cmd仅作备用。同时强调跨平台脚本应优先使用bash编写,以确保兼容性。
2025-11-26 16:45:32
930
原创 PostgreSQL和MySQL的函数索引、部分索引、覆盖索引的使用方法
本文对比了PostgreSQL和MySQL在函数索引、部分索引和覆盖索引的实现方式。PostgreSQL支持任意函数/表达式索引和原生部分索引,通过INCLUDE子句实现覆盖索引;MySQL 8.0+仅支持确定性函数索引,需通过生成列或分区表模拟部分索引,且覆盖索引需将所有查询列加入索引。两种数据库在索引功能上各有特点,PostgreSQL更灵活,而MySQL需要特定版本或替代方案实现类似功能。合理使用这些索引技术可显著提升查询性能。
2025-11-26 16:11:19
475
原创 数据库事务是什么,怎么用的
数据库事务是一组原子性SQL操作,通过ACID特性保证数据一致性。核心操作包括开启事务、执行SQL、提交/回滚,支持保存点实现部分回滚。不同数据库在隔离级别上存在差异,如MySQL默认可重复读,PostgreSQL默认读已提交。实际开发中推荐使用框架(如Spring的@Transactional)实现声明式事务。注意事项包括避免长事务、合理设置隔离级别、确保异常回滚等,需根据业务场景优化事务设计。
2025-11-25 13:53:13
1349
原创 有哪些常见的web安全机制
本文系统介绍了Web安全的核心机制与防御策略,重点涵盖注入攻击防护、身份认证授权、数据安全传输存储等关键领域。针对SQL注入、XSS、CSRF等常见攻击,提出了参数化查询、输出编码、CSRF Token等解决方案。同时强调了HTTPS加密、敏感数据加密存储、权限最小化等基本原则。文章还涉及请求限流、文件上传安全、HTTP安全头配置等实用技术,并指出依赖包管理和日志安全的重要性。
2025-11-24 13:39:58
910
原创 休闲摸鱼小游戏扫雷游戏|下载即玩
经典玩法与现代设计结合,支持左键点击揭开方块、右键标记地雷多种难度难度级别(初级、中级、高级、自定义),满足不同玩家需求精美的动画效果,包括地雷爆炸、胜利庆祝烟花等深色 / 浅色主题切换,适应不同使用环境游戏计时功能和最高分排行榜,记录您的最佳成绩
2025-11-23 17:10:13
292
原创 git 设置邮箱和用户名
Git头像关联指南:1) 配置Git用户名和邮箱(全局或仓库级别);2) 通过GitHub/GitLab等平台关联头像,需确保注册邮箱与Git配置一致;3) 使用Gravatar全球头像服务;4) 本地仓库需特定工具支持。核心是保持邮箱一致性,注意公开邮箱设置和多邮箱管理。可通过git config命令验证配置。
2025-11-23 16:48:47
626
原创 PostgreSQL与MySQL有什么区别
PostgreSQL与MySQL对比:PostgreSQL是功能全面的开源数据库,适合企业级应用、数据仓库等复杂场景,支持丰富数据类型、ACID事务和多种索引,在复杂查询和高并发场景表现优异。MySQL则是轻量快速的开源数据库,适合Web应用和小型系统,以简单查询和读多写少场景见长,但数据类型和功能相对简化。两者在事务支持、索引类型、查询功能和适用场景上存在明显差异。
2025-11-21 22:31:37
383
原创 springboot结构,本地搭建并运行 SpringBoot 项目
SpringBoot采用"约定优于配置"理念,提供标准化项目结构:包含src/main/java(核心代码)、resources(配置文件)和test(测试代码)目录。快速搭建SpringBoot项目可通过Spring Initializr创建,选择Web等必要依赖。核心组件包括启动类(@SpringBootApplication)、Controller(@RestController)等。本地运行只需配置JDK8+、Maven和IDE环境,创建简单REST接口验证项目运行。
2025-11-21 15:23:32
1371
原创 如何解决Spring Boot项目中常见的依赖缺失问题
摘要:本文针对SpringBoot常见的依赖缺失问题,系统性地分析了四种主要场景:核心依赖未引入、版本冲突、传递依赖缺失和下载失败。详细讲解了通过错误日志定位问题、使用Maven/Gradle工具排查、配置镜像源等方法,并提供了具体解决方案和代码示例。文章还介绍了预防依赖问题的实践建议,包括使用Spring Initializr初始化项目、遵循版本管理和定期更新依赖等。最后通过典型错误案例演示排查流程,帮助开发者快速解决依赖相关问题。
2025-11-20 21:00:00
2480
1
原创 OOP(面向对象编程)的三大核心特性:封装、继承、多态
面向对象编程(OOP)的三大核心特性是封装、继承和多态。封装通过隐藏内部实现细节和暴露公共接口来提高数据安全性和降低耦合度;继承实现代码复用和建立类层次关系,体现"is-a"关系;多态允许同一方法在不同对象上表现出不同行为,提高代码灵活性。这三大特性共同实现了代码的高复用性、低耦合度和易维护性,有效模拟现实世界的复杂关系。
2025-11-20 16:11:18
726
原创 如何快速掌握Java的面向对象编程思维?
摘要:掌握Java面向对象编程(OOP)的核心在于用现实世界逻辑映射代码世界。关键在于三个思维转换:1)将问题拆解为"对象+属性+方法";2)通过现实案例理解封装(手机隐藏内部细节)、继承(大学生复用学生特征)和多态(动物叫声不同);3)避免常见错误如滥用继承、过度封装。新手需从"面向过程"转向让"对象自己做事"的思维,7-14天即可建立OOP基础思维模式。
2025-11-19 18:04:39
1073
原创 Java中var的作用:局部变量类型推断关键字
Java 中 var 的核心作用:简化局部变量声明,让编译器根据初始化值自动推断类型,减少冗余代码。核心约束:仅用于局部变量、必须立即初始化、类型固定(强类型)、不能用于成员变量 / 参数 / 返回值。最佳实践:在「类型冗长(如复杂泛型)」「类型明确(如循环变量)」的场景使用,优先保证代码可读性,不滥用。关键区别:与 JavaScript 的 var 无任何关联,Java 的 var 不改变强类型本质,仅为语法糖。
2025-11-19 15:28:29
1226
原创 批量 CSV 数据转 DTO 标准化代码模板
本文介绍了一个基于Java的CSV转DTO批量处理工具的设计与实现。该模板已覆盖批量 CSV 转 DTO 的核心场景,可直接复用,也可根据实际业务需求进行扩展。
2025-11-18 16:49:12
633
原创 什么是控制反转(IOC)和依赖注入(DI)
IOC:反转控制权—— 不用自己 new 对象,交给 Spring 容器管;DI:依赖注入—— 容器把你需要的对象,主动送到你手里;核心价值:解耦—— 类和类之间不再通过 new 硬绑死,后续换实现、改逻辑,不用动调用方代码(比如换 UserService 实现,不用改 UserController)。
2025-11-18 14:36:08
1448
原创 Service与对应的ServiceImpl之间的关系。如果有多个 Impl 实现同一个 Service 怎么办?
Service 是「接口(规范)」,ServiceImpl 是「实现类(逻辑落地)」;调用逻辑:不是 “调用 Service 就自动启动 Impl”,而是 Spring 提前创建了 Impl 的 Bean,注入 Service 接口时实际注入的是 Impl 代理对象,调用接口方法本质是调用 Impl 的实现;核心作用:解耦 —— 调用方只关心 Service 定义的方法(“要做什么”),不用关心 Impl 里的具体逻辑(“怎么做”),后续换实现、改逻辑都不用动调用方代码。
2025-11-17 17:17:40
1112
原创 CSP是什么?CSP 的工作原理(Content Security Policy)
CSP 是 Web 安全的 “第一道防线”,通过明确资源加载白名单,从根源上阻断 XSS 等恶意攻击。优先通过 HTTP 响应头配置(而非 meta 标签);基础规则:default-src 'self' + 按需添加第三方域名;尽量禁用 'unsafe-inline' 和 'unsafe-eval',提升安全性;首次配置用报告模式调试,避免误拦正常资源。
2025-11-17 14:38:02
2704
原创 打包的java的war包或者jar包是如何到服务器上运行起来的
WAR 包:Web 应用专属 → 服务器装 Web 容器(Tomcat)→ 上传 WAR 到 webapps → 启动容器自动运行;JAR 包:独立应用 → 服务器仅需 JDK → 上传 JAR → java -jar 命令启动(后台运行 + 开机自启适配生产);核心关键:服务器有 JDK、端口放行、权限足够,根据包类型选择对应容器 / 命令即可。
2025-11-14 17:48:29
1228
原创 Lombok有哪些常用注解
Lombok是简化Java开发的利器,通过注解自动生成重复代码。核心注解包括:@Data(全能注解,整合Getter/Setter/ToString等)、@Builder(构建者模式)、@Slf4j(日志)、@NonNull(空值校验)和@Value(不可变类)。
2025-11-14 16:59:22
1167
原创 Map 与 List 详解:作用、定义、调用(Java 实战)
List 是「有序可重复的线性集合」,适合按顺序存储、访问数据;Map 是「无序唯一的键值对集合」,适合通过唯一 Key 快速查找 Value。
2025-11-13 17:41:44
1202
原创 前端或者后端怎么和controller,service,serviceimpl怎么调用运行起来的
本文讲解了前后端交互中Controller、Service、ServiceImpl的分层架构逻辑。前端发起请求后,后端通过分层处理:Controller接收请求并转发,Service定义业务接口,ServiceImpl实现具体逻辑。整个过程依赖Spring的依赖注入机制自动管理组件实例,实现"前端请求→Controller→ServiceImpl→数据库→返回响应"的完整链路。该分层设计实现了职责分离,提高了代码的可维护性和扩展性。
2025-11-13 17:29:04
1454
原创 如何在服务器端验证Token的合法性?
sub(Subject,用户 ID,需验证该用户是否存在于数据库)、role(权限,需验证用户是否有当前接口的访问权限)、iss(Issuer,签发者,需验证是否为当前服务器)、aud(Audience,受众,需验证是否为目标客户端)。操作:比如解析出sub(用户 ID)后,查询数据库确认用户状态(是否禁用、注销),若用户已注销,即使 Token 签名和过期时间有效,也拒绝请求。
2025-11-12 15:49:47
1064
原创 什么是 JWT?如何使用JWT进行用户身份验证?
JWT(JSON Web Token)是一种用于身份验证和授权的轻量级令牌技术,采用"Header.Payload.Signature"三段式结构。它通过JSON格式编码用户信息,支持签名验证确保数据完整性,具有无状态、自包含、跨平台等优势。核心工作流程包括令牌签发、客户端存储、请求携带和服务器验证。JWT适用于前后端分离、微服务架构等场景,但需注意密钥安全、敏感信息保护和令牌有效期设置。在实际开发中,通常配合短期访问令牌和长期刷新令牌使用.
2025-11-12 09:39:43
1968
原创 什么是Token?Token与session和cookie的区别
Token、Session和Cookie都是身份认证工具,但机制不同。Token(如JWT)是无状态的加密字符串,客户端携带验证身份,服务器无需存储;Session依赖服务器存储会话数据,客户端通过SessionID(通常由Cookie传递)关联;Cookie是浏览器存储的小型文本,用于自动传递SessionID或保存临时数据。
2025-11-11 13:28:18
1337
原创 什么是 clientId?怎么配置 clientId?
ClientId是用于标识客户端身份的唯一字符串,与服务端交互时配合clientSecret进行身份验证,常见于API调用、OAuth2.0授权等场景。
2025-11-11 09:08:40
3431
原创 如何编写 Batch 脚本(.bat/.cmd)
本文介绍Windows批处理脚本(.bat/.cmd)的基础用法和实战案例。1.基础准备;2.核心语法;3.实用案例;4.注意事项
2025-11-10 17:51:59
2233
原创 python连接数据库记录
安装pymysql解释器,可以在pycharm中,设置里面下载,或者用pip install pymysql安装。
2023-05-05 00:08:49
105
1
原创 安装mySQL分享(任务)
直接搜索mySQL,点击进入官网网页,找到适合自己的SDK,Linux ,Windows版本。选择自己需要的安装路径,安装之后打开。
2023-03-13 15:22:49
91
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅