Redis实现点赞、收藏、关注等原子计数 + 异步解耦设计
本文介绍了基于Redis实现高并发计数与异步解耦的设计方案。针对点赞、阅读量等高频操作,使用Redis的HINCRBY命令实现原子计数,避免并发问题。通过Spring的@EventListener和@Async实现业务解耦与异步处理,提升响应速度。同时采用Redis Pipeline减少网络开销,定时任务进行全量数据同步。方案还解决了事务一致性问题,使...
Linux 常用基础命令
本文总结了Linux系统常用基础命令,分为7个部分:1)核心概念解释Linux、Bash、Apt等术语;2)基础命令包括系统管理、文件导航和操作;3)文本编辑器Nano的使用方法;4)文件权限管理;5)软件安装方式;6)网络连接命令;7)提高效率的技巧如重定向、管道和历史命令。文章采用表格和分类形式,用通俗类比解释专业术语,适合Linux初学者快速掌握...
WEB三大组件:Filter、Servlet、Listener不同配置方式的差异与优先级对比
本文对比了Web三大组件(Filter、Servlet、Listener)的不同配置方式及其优先级。文章详细说明了各组件的配置差异和执行顺序,为开发者选择合适配置方式提供了参考。_servlet filter listener 本文最初发布于 CSDN,现迁移至本站并做格式整理。内容保留原始观点与发布时间。 FilterFilter(过滤器)作...
理解分层架构:彻底理清 VO、DTO、BO、PO、DO 的边界与流转
本文介绍了分层架构中常见的VO、DTO、BO、PO、DO等数据对象的概念及流转过程。这些对象分别承担表示层、业务层和数据层的特定职责,确保系统各层之间的隔离和安全性。DO对应数据库记录,BO封装业务逻辑,DTO用于跨层传输,VO是前端视图对象。文章通过传统三层架构和DDD架构的对比,展示了这些对象在不同架构中的流转路径。POJO作为基础Java类,是这...
全局异常处理的两种策略:HandlerExceptionResolver和RestControllerAdvice
本文对比了Spring中两种全局异常处理策略:HandlerExceptionResolver和@RestControllerAdvice。HandlerExceptionResolver是Spring底层的异常解析机制,需要手动注册到处理器链中,优先级高且处理范围广,适合框架级异常处理;而@RestControllerAdvice基于注解实现,使用简...
【秒杀中的并发】如何避免全局单线程和实现细粒度锁
黑马点评项目实现”秒杀优惠券一人一单”功能时,通过优化锁机制提升并发性能。关键点在于使用synchronized(userId.toString().intern())替代方法级锁,确保相同用户请求串行执行(防止重复下单)而不同用户请求并发执行。采用字符串常量池机制保证相同用户ID对应同一锁对象,解决了直接使用Long类型时因对象引用不同导致的锁失效问...
【Spring事务失效的常见原因】同类内部调用导致 @Transactional 不生效
Spring中@Transactional事务失效的常见原因是同类内部方法调用导致AOP代理失效。事务基于动态代理实现,若通过this.方法()直接调用,会绕过代理对象,使事务注解失效。解决方案是通过AopContext.currentProxy()获取代理实例调用方法,并配置@EnableAspectJAutoProxy(exposeProxy...
铁头山羊stm32学习笔记
本文主要记录了计算机研一学生自学STM32的学习笔记,重点总结了GPIO和串口通信的基本原理。在GPIO部分,详细介绍了四种输出模式(推挽、开漏、通用、复用)的工作原理及特点,以及输入模式中的上/下拉电阻作用。在串口通信部分,解析了UART协议的数据帧结构、校验机制及全双工/半双工模式区别,并举例说明了波特率计算方法。文中还包含LE...






