# springboot-redis-hot-key-monitor **Repository Path**: luckymxp/springboot-redis-hot-key-monitor ## Basic Information - **Project Name**: springboot-redis-hot-key-monitor - **Description**: 基于网易云信camellia-hot-key搭建Redis热点key监控、热点key解决方案。集成Prometheus+grafana可视化监控热点key。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-06-13 - **Last Updated**: 2025-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redis Camellia 热点 Key 解决方案 ## 项目简介 该项目提供了一种基于 [Camellia](https://github.com/netease-im/camellia) 的 Redis 热点 Key 监控与缓存解决方案,适用于大规模并发访问场景下的热点 Key 问题。项目分为客户端和服务端,方便开发者快速集成并解决 Redis 中的热点 Key 性能瓶颈。 ## 主要功能 - **热点 Key 监控**:通过 `CamelliaHotKeyMonitorSdk` 实现对 Redis 中热点 Key 的实时监控。 - **缓存优化**:通过 `CamelliaHotKeyCacheSdk` 缓存热点 Key 数据,降低 Redis 压力。 - **通用 Redis 工具**:封装了 `RedisLettuceUtil`,提供丰富的 Redis 操作方法。 ## 技术栈 - Spring Boot - Redis - Camellia SDK - Lettuce Redis 客户端 - 服务端最低要求java21,client最低要求java8 ## 项目结构 - `redis-camellia-hot-key-client`: 客户端模块,包含 Redis 操作及 Camellia SDK 的集成。 - `redis-camellia-hot-key-server`: 服务端模块,用于启动 Camellia 热点 Key 服务,提供服务上线/下线配置。 - `docs/jmeter`: 包含用于压测的 JMeter 配置文件。 - `pom.xml`: Maven 项目配置文件。 - `application.yml`: 主配置文件。 ## 快速启动 ### 客户端模块 客户端模块提供 Redis 操作功能和 Camellia SDK 的集成: 1. 启动 `CamelliaDemoApplication`。 2. 访问 `/redis/pressure/test` 接口进行压测测试。 ### 服务端模块 服务端模块负责启动 Camellia 热点 Key 监控服务: 1. 启动 `CamelliaServerApplication`。 2. 通过 `application.yml` 和 `camellia-hot-key-config.properties` 配置服务。 ## 示例接口 - **压测接口**: - GET `/redis/pressure/test` - 参数:`namespace`, `key` ## 配置说明 - `hotkey-*.yml` 文件用于配置不同环境(dev/test/uat/prod)下的热点 Key 监控策略。 - `namespace/namespace1.json` 文件用于定义命名空间级别的配置。 ## 依赖管理 项目使用 Maven 进行依赖管理,具体配置见 `pom.xml`。 ## 服务注册 通过 `@Bean` 注解注册 `CamelliaHotKeyMonitorSdk` 和 `CamelliaHotKeyCacheSdk`,实现在 Spring 容器中的依赖注入。 ## 使用说明 - 可通过 `RedisLettuceUtil` 提供的 API 进行 Redis 数据操作。 - 配置 Camellia SDK 以适应实际业务需求,如设置监控刷新间隔等。 ## 注意事项 - 请根据实际部署环境修改 Redis 配置。 - 确保服务端与客户端使用相同的命名空间配置。 ## 参与贡献 欢迎贡献代码,提交 Issue 或 Pull Request。请确保遵循项目代码规范和提交流程。 ## 许可证 本项目遵循 Apache-2.0 协议,详细信息请参见 [LICENSE](LICENSE) 文件。