自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【redis-day04-万字长文实现秒杀业务】

本文总结了Redis在优惠券秒杀系统中的关键应用。主要内容包括:1)全局ID生成器实现,通过时间戳和Redis序列号拼接生成唯一订单ID;2)优惠券秒杀下单流程,包括库存校验和时间验证;3)并发控制方案,使用改进的乐观锁CAS解决超卖问题,悲观锁实现一人一单限制;4)分布式锁优化,采用Redisson解决锁重入、重试等问题;5)性能优化,通过Redis解耦数据库操作,利用Lua脚本保证原子性;6)消息队列实现,基于Redis Stream实现异步处理。这些技术组合有效解决了高并发秒杀场景下的数据一致性和系统

2026-01-04 13:35:24 733

原创 【redis-day03-缓存三兄弟及解决方案】

本文总结了Redis缓存技术在商户查询系统中的应用实践。主要内容包括:1) 缓存基本概念及Redis实现商铺查询缓存的流程;2) 解决缓存数据不一致问题的策略(读操作设置超时时间,写操作先改数据库再删缓存);3) 应对缓存穿透问题的空对象缓存方案;4) 解决缓存击穿的互斥锁和逻辑过期方法;5) 通过泛型和函数式接口将解决方案抽象为工具类。文章详细展示了代码实现过程,包括商铺查询、类型缓存、缓存更新策略等核心功能,并通过实际测试验证了方案的可行性。

2025-12-18 15:05:02 805

原创 【Redis-day02-黑马点评短信登录】

了解了项目大致结构和待实现的功能复习了会话及会话跟踪技术,主要复习实现了发送短信验证码业务功能实现了短信验证码登录、注册功能,了解了mybatis-plus的基础用法深入理解了ThreadLocal的原理以及ThreadLocalMap中Entry弱引用而key强引用可能导致的内存泄露问题以及该问题的解决方案。基于ThreadLocal, Intercepter实现了登录状态校验使用redis实现了共享session登录。

2025-12-16 11:49:55 978

原创 【Redis-day01】

Redis学习笔记摘要 本文介绍了Redis的基础知识和Java操作Redis的方法。主要内容包括: NoSQL概念及Redis的优势:内存型键值数据库,支持多种数据结构,单线程原子性操作,低延迟持久化 Redis五种数据类型及常用命令:字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Zset) Spring Data Redis使用:通过RedisTemplate操作Redis,支持自动/手动序列化,包含配置步骤和示例代码 操作示例:字符串和哈希类型的Java操作演示

2025-12-15 10:22:45 1036

原创 【苍穹外卖-day12】

今日工作主要完成了工作台数据展示功能的开发,包括运营数据、订单管理数据、菜品和套餐总览等模块。使用Spring Boot框架实现了相关Controller和Service层代码,通过MyBatis查询数据库获取各项统计指标。同时学习了Apache POI工具库,并基于该库实现了运营数据Excel报表导出功能。工作台模块提供了数据可视化展示,便于管理员快速掌握餐厅运营情况。

2025-12-11 17:05:44 508

原创 【苍穹外卖-day11】

本文总结了《苍穹外卖-day11》开发内容,主要完成四大统计功能开发:营业额统计、用户统计、订单统计和销量排名Top统计。营业额统计通过折线图展示已完成订单金额,按日期区间查询并计算每日营业额;用户统计功能与营业额统计实现思路相似;订单统计则展示每日订单总数、有效订单数及完成率(有效订单数/总订单数×100%)。各功能均采用VO对象封装数据,通过Controller接收参数,Service处理业务逻辑,Mapper执行数据库查询,最终完成可视化报表展示。测试结果表明各统计功能运行正常,满足业务需求。

2025-12-11 13:07:38 772

原创 【苍穹外卖-day10】

今日学习总结: 实现了订单伪支付功能,并学习了Spring Task任务调度工具和cron表达式 完成了订单状态定时处理功能,包括超时订单自动取消和派送中订单自动完成 学习了WebSocket技术,实现了全双工通信 开发了来单提醒和客户催单功能,通过WebSocket实现实时消息推送 关键技术点: 使用Spring Task定时任务处理订单状态 掌握cron表达式配置定时规则 实现WebSocket服务端组件 应用WebSocket实现实时消息推送功能 应用场景: 订单状态自动处理 实时消息提醒(来单、催单

2025-12-08 15:52:41 595

原创 【苍穹外卖-day09】

摘要 本文档记录了苍穹外卖项目第9天的开发工作,主要完成了用户端和客户端的订单管理功能开发。用户端实现了历史订单分页查询、订单详情查看、取消订单和再来一单功能;客户端实现了订单搜索、状态统计、详情查看以及订单处理流程(接单、拒单、取消、派送)等功能。文档详细展示了Controller层接口定义、Service层业务逻辑处理以及Mapper层数据库操作的核心代码实现,包括分页查询封装、订单状态校验、购物车数据复制等关键业务逻辑。

2025-12-08 11:02:24 331

原创 【苍穹外卖-day08】

本文主要介绍了苍穹外卖项目第八天的工作内容,重点实现了地址簿管理和用户下单功能。在地址簿模块中,完成了地址列表查询、默认地址设置、新增/修改/删除地址等核心功能的开发,通过Controller层和Service层的代码实现。用户下单功能实现了订单数据与订单明细数据的关联插入。文章还展示了相关接口设计和代码实现细节,包括Swagger注解的使用和业务逻辑处理。虽然订单支付功能已初步涉及,但仍需进一步完善。整体上,项目进展顺利,基础功能模块已基本成型。

2025-12-05 11:32:37 934

原创 【苍穹外卖-day07】

本文总结了《苍穹外卖-day07》的开发内容,主要实现了菜品和套餐的缓存功能以及购物车相关功能。通过Redis缓存菜品数据,采用Spring Cache注解实现套餐缓存,有效降低了数据库访问压力。购物车功能包括添加、查看、清空和删除商品,利用ThreadLocal实现用户身份识别。文章详细介绍了缓存逻辑、代码实现和测试验证过程,包括缓存策略选择、数据一致性保障方案等。开发过程中注重性能优化和用户体验,最终实现了高效稳定的外卖系统功能模块。

2025-12-04 13:20:14 764

原创 【苍穹外卖-day6】

今日学习内容包括HttpClient的使用、微信小程序开发基础和微信登录功能实现。重点掌握了HttpClient发送GET/POST请求的流程及工具类封装,了解了微信登录流程中获取openid的方法。同时完成了商品浏览相关功能,包括分类查询、菜品查询和套餐查询等接口开发。通过实践掌握了HttpClient调用API、JWT令牌校验等关键技术点。

2025-11-25 15:23:11 733

原创 Redis入门及在IDEA中的配置

Redis是一个高性能的内存键值数据库,支持多种数据结构。本文介绍了Redis的基本概念、安装配置、数据类型及常用命令,并讲解了在Java项目中使用Spring Data Redis的操作步骤。主要内容包括:Redis的特点和优势;Windows环境下的安装与启动;字符串、哈希、列表、集合和有序集合五种数据类型的操作命令;以及通过Spring Data Redis在Java项目中集成Redis的方法。Redis作为MySQL的补充,特别适合存储热点数据,能显著提升系统性能。

2025-11-24 13:25:17 1182

原创 【苍穹外卖-day5】

本文介绍了Redis的基础知识及其在Java中的应用。主要内容包括:Redis作为内存型key-value数据库的特点与优势;五种常用数据类型(字符串、哈希、列表、集合、有序集合)及其操作命令;Redis服务的安装配置与图形化界面使用;在Spring项目中通过Spring Data Redis操作Redis的方法步骤。最后实现了店铺营业状态设置功能,展示了Redis在实际项目中的应用。Redis作为MySQL的补充,特别适合处理热点数据和高并发场景,能显著提升系统性能。

2025-11-24 13:20:55 979

原创 【苍穹外卖-day4】

本文总结了苍穹外卖项目day04的开发内容,主要完成了菜品管理和套餐管理模块功能。重点实现了套餐管理全流程功能,包括新增套餐、分页查询、根据ID查询、删除、修改和起售停售套餐。在新增套餐时,通过事务管理确保套餐数据和关联菜品数据的一致性;分页查询采用多表联查获取分类名称;删除套餐时检查在售状态;修改套餐时先删除原有菜品再新增修改后的菜品。技术实现上使用了MyBatis、PageHelper分页、AOP自动填充等技术,通过DTO和VO对象实现前后端数据交互,确保系统功能的完整性和数据一致性。

2025-11-21 13:49:42 1198

原创 【苍穹外卖-day3】

本文总结了苍穹外卖项目day03的主要开发内容,包括分类管理(分页查询、新增、启用禁用、修改、删除)、公共字段自动填充(使用AOP和反射技术)、文件上传(阿里OSS)、菜品管理(新增、分页查询、删除、修改)等功能实现。重点介绍了公共字段自动填充的技术实现方案,包含自定义注解、切面类设计和SpringAOP核心概念。文章还详细分析了新增菜品功能的需求设计和接口定义,涵盖了分类查询、文件上传等关联操作的技术要点。

2025-11-19 10:52:19 1091

原创 【苍穹外卖-day2】

今日工作总结了苍穹外卖项目第二天的开发内容,主要包括员工管理功能的实现:1) 完成新增员工功能,使用ThreadLocal技术获取操作者ID;2) 实现分页查询并解决日期格式化问题;3) 开发账号启用/禁用功能;4) 实现员工信息编辑功能。详细设计了新增员工业务的异常处理机制,完善了重复字段校验和操作者ID获取功能。测试环节验证了前后端联调效果,通过接口文档和实际数据操作确认功能正常运行。对存在的异常情况和固定值问题进行了针对性优化,提升了系统的稳定性和可维护性。

2025-11-14 15:59:48 926

原创 【苍穹外卖-day1】

《苍穹外卖-day01》项目开发首日工作摘要:团队完成了餐饮管理系统的环境搭建与Git版本控制学习。项目采用前后端分离架构,前端通过nginx部署,后端基于Maven分模块开发(公共类、实体类、服务类)。完成了数据库配置、登录功能开发(MD5密码加密)及接口文档管理(Apifox)。系统学习了Git核心操作,包括本地/远程仓库管理、分支处理及IDEA集成,为后续协同开发奠定基础。技术栈选用SpringBoot+MyBatis+Redis等主流框架,项目包含管理端和用户端双系统。

2025-11-12 11:27:19 713

【分布式系统】基于Redis的优惠券秒杀系统设计:全局ID生成、超卖控制与异步消息队列实现

内容概要:本文围绕基于Redis实现优惠券秒杀系统的高并发场景展开,系统讲解了从基础功能到高性能优化的完整实现路径。内容涵盖全局唯一ID生成器的设计与实现,通过时间戳与Redis序列号拼接生成安全且无规律的订单ID;详细剖析了秒杀下单流程中的核心问题——超卖与一人一单,并分别采用改进的乐观锁(CAS)和悲观锁机制加以解决;深入探讨了分布式环境下本地锁失效的问题,引入Redisson实现可重入、可重试、具备看门狗机制的分布式锁,并通过源码分析其底层原理;进一步提出基于Redis的异步秒杀优化方案,利用Lua脚本保证校验与扣减的原子性,结合阻塞队列实现业务解耦;最终升级为基于Redis Stream + 消费者组的消息队列架构,提升系统可靠性与扩展性,支持消息回溯、多消费者并行处理及故障恢复。; 适合人群:具备Java基础、熟悉Spring Boot与Redis的中初级后端开发人员,尤其是对高并发场景下的分布式锁、消息队列、事务控制等技术感兴趣的开发者。; 使用场景及目标:①掌握高并发系统中防止超卖、一人一单等典型问题的技术解决方案;②理解并应用Redisson分布式锁的核心特性(可重入、重试、看门狗、主从一致性);③学会使用Lua脚本保证操作原子性,以及利用Redis Stream构建可靠的异步消息处理系统;④提升对分布式系统中性能瓶颈的识别与优化能力。; 阅读建议:建议结合代码实践逐步跟进,重点关注Lua脚本编写、Redisson锁机制、Stream消费者组的工作流程,同时注意事务代理对象的正确调用方式,避免因内部调用导致AOP失效问题。

2026-01-04

空空如也

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

TA关注的人

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