# Redis 实现排队功能 (超时自动过号) **Repository Path**: baage-cn/queuing ## Basic Information - **Project Name**: Redis 实现排队功能 (超时自动过号) - **Description**: Redis 实现排队功能 (超时自动过号) 示例 demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redis 实现排队功能(超时自动过号) ## 介绍 该项目演示了如何使用 Redis 实现一个排队系统,并支持超时自动过号功能。适用于需要排队处理的业务场景,例如在线挂号、排队叫号等。 ## 功能特点 - 使用 Redis 进行数据存储和队列管理。 - 支持用户排队和获取当前排队信息。 - 自动处理超时用户,实现过号功能。 - 提供简单的 REST 接口进行测试和操作。 ## 技术栈 - Spring Boot - Redis - Redisson(可选,用于分布式锁) - Log4j2(日志记录) ## 项目结构 - `BaageApplication.java`: 项目的启动类。 - `DataService.java`: 提供排队相关的业务逻辑。 - `TestController.java`: 提供测试用的 REST 接口。 - `RedisConfig.java`: Redis 配置类。 - `RedisKeyExpirationListener.java`: 监听 Redis 键过期事件。 - `ExpirationMessageDispatcher.java`: 处理 Redis 键过期事件的分发。 ## 安装与配置 1. 确保已安装 Java 11 或更高版本。 2. 确保已安装并启动 Redis 服务。 3. 修改 `application.yaml` 文件中的 Redis 配置(如主机名、端口等)以匹配你的环境。 ## 使用说明 ### 启动项目 运行 `BaageApplication.java` 中的 `main` 方法启动 Spring Boot 应用。 ### 测试接口 - **启动排队系统**: 发送 GET 请求到 `/start` - **获取当前用户**: 发送 GET 请求到 `/get` - **结束当前用户**: 发送 GET 请求到 `/over?value={userId}` ## 注意事项 - Redis 需要开启键空间通知功能(`notify-keyspace-events`)以支持键过期监听。 - 在生产环境中,建议使用更完善的异常处理和日志记录机制。 ## 贡献者 欢迎提交 Pull Request 和 Issue 反馈。 ## 许可证 本项目采用 MIT 许可证。详情请查看 LICENSE 文件。