# redisson **Repository Path**: yanyongzhitest/redisson ## Basic Information - **Project Name**: redisson - **Description**: redis分布式 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-08 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redis + MySQL + Redisson 高并发一致性项目 面向 Gitee 的项目说明,用于演示 **Redis 缓存 + MySQL 持久化 + Redisson 分布式锁 + 延时双删 + RabbitMQ 消息一致性 + Caffeine 本地缓存 + 数据补偿** 的组合方案,满足高并发场景下的读写一致性与性能要求。 ## 核心能力 - **多级缓存**:Caffeine (本地) + Redis (分布式)。 - **分布式锁**:Redisson 防缓存击穿/并发写冲突。 - **延时双删**:更新前删缓存,更新后异步再删,避免脏读。 - **消息队列一致性**:RabbitMQ 通知缓存更新 & 触发补偿。 - **数据补偿**:定时/消息触发校验 Redis 与 DB,发现不一致自动刷新。 - **高并发优化**:连接池、异步线程池、预取设置等。添加docker一键启动和README.md文件解释项目 ## 目录结构 ``` src/main/java/com/example/origin_project/ ├── config/ # Redisson、Caffeine、RabbitMQ、Async、ObjectMapper 等配置 ├── utils/ # DelayedDoubleDeleteUtil 延时双删 ├── service/ # CacheService、UserService、MessageQueueService、DataCompensateService ├── consumer/ # 缓存更新 & 数据补偿 MQ 消费者 ├── controller/ # UserController 示例接口 ├── mapper/ # UserMapper (MyBatis-Plus) ├── entity/ # User 实体 └── OriginProjectApplication.java src/main/resources/ ├── application.properties # 环境配置(数据库/缓存/MQ/线程池等) ├── redisson-config.yml # Redisson 单机示例配置 └── db/schema.sql # 初始化建库建表及测试数据 ``` ## 快速开始 1) **准备环境** - MySQL、Redis、RabbitMQ 已启动 - 修改 `application.properties` 中的连接信息(保持你自己的 DB 账号/密码/端口) 2) **初始化数据库** - 执行 `src/main/resources/db/schema.sql` 创建库表与示例数据 3) **启动应用** - `mvn spring-boot:run` 4) **验证接口** - `GET /api/user/{id}` - `POST /api/user`(创建后触发延时双删 + MQ 通知) - `PUT /api/user`(更新触发补偿消息) - `DELETE /api/user/{id}` ## 关键机制说明 - **读流程**:Caffeine -> Redis -> DB(穿透时加 Redisson 锁,写回缓存)。 - **写流程**:删缓存 → 写库 → MQ 通知 → 延时再删缓存,确保下一次命中最新。 - **补偿**:定时/消息触发对比 DB 与缓存,不一致则重建缓存或删除。 ## Gitee 展示建议 - 设置仓库描述:`Redis+MySQL 高并发一致性示例,含 Redisson/延时双删/MQ/补偿/本地缓存` - README 展示核心特性、启动步骤与接口示例 - 勾选 Gitee Pages(如需文档展示,可另建 docs) ## License 根据实际需要选择许可证(示例可用 MIT)。*** End Patchақты to=functions.apply_patch ರ json apimachinery console## Test Output Reasoning