# anysdk-redis **Repository Path**: tianyuanoss/anysdk-redis ## Basic Information - **Project Name**: anysdk-redis - **Description**: anysdk redis - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-06-12 - **Last Updated**: 2025-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AnySDK-Redis AnySDK-Redis 是一个统一的Redis缓存服务接入框架,旨在简化不同Redis服务提供商的接入流程。该项目采用模块化设计,支持本地Redis、阿里云Redis集群以及华为云Redis等多种Redis服务。 ## 项目概述 AnySDK-Redis 提供了一套统一的接口和配置方案,使得开发者可以轻松地接入不同的Redis服务,包括但不限于: - 本地 Redis - 阿里云 ApsaraDB for Redis - 腾讯云 TencentDB for Redis - 华为云 DCS for Redis - 更多Redis服务提供商(持续添加中) ## 核心架构 ### 项目结构 项目采用多模块Maven架构: - **backend/**: 后端核心代码 - **components/anysdk-redis**: 核心Redis库 - **components/anysdk-redis-spring-boot-starter**: Spring Boot自动配置 - **anysdk-redis-demo**: 演示应用 - **frontend/anysdk-redis-demo-ui**: Vue3 + Element Plus前端演示界面 - **docs/**: 完整的技术文档 - **tools/**: 工具脚本 ### 核心设计理念 #### 统一接口抽象 项目通过 `IRedisService` 接口提供统一的Redis操作API,支持: - **String操作**: set、get、del、exists、expire、ttl - **Hash操作**: hSet、hGet、hGetAll、hDel等 - **List操作**: lPush、rPush、lPop、rPop等 - **Set操作**: sAdd、sRem、sMembers等 - **ZSet操作**: zAdd、zRem、zRange等 - **高级功能**: 事务、管道、Lua脚本 #### 多环境支持 通过配置文件实现多环境切换: ```yaml anysdk: redis: environment: local # 或 aliyun local: host: localhost port: 6379 database: 0 aliyun: endpoint: your-aliyun-redis-endpoint mode: standard # standard, cluster, sentinel ``` ## 核心特性 ### 连接管理 - **连接池管理**: 支持Jedis连接池配置 - **集群支持**: 支持Redis集群模式 - **哨兵支持**: 支持Redis哨兵模式 - **自动重连**: 集成重连机制 ### 事件驱动架构 提供完整的事件管理机制: - **连接事件**: RedisConnectionEvent - **环境切换事件**: RedisEnvironmentChangeEvent - **错误事件**: RedisErrorEvent - **重连事件**: RedisReconnectingEvent ### 异常处理体系 建立了完整的异常处理机制: - **RedisException**: 基础异常类 - **RedisConnectionException**: 连接异常 - **RedisCommandException**: 命令执行异常 - **AliyunRedisException**: 阿里云特定异常 - **RedisEnvironmentException**: 环境异常 ### 重连策略 支持多种重连策略: - **ExponentialBackoffReconnectStrategy**: 指数退避重连 - **FixedIntervalReconnectStrategy**: 固定间隔重连 - **RedisReconnectManager**: 重连管理器 ## 云服务支持 ### 阿里云Redis集成 提供阿里云Redis专门配置: - **标准主从模式**: standard - **集群模式**: cluster - **哨兵模式**: sentinel - **VPC网络支持**: vpcId、instanceId配置 - **访问密钥管理**: accessKeyId、accessKeySecret ## Spring Boot集成 ### 快速开始 1. **添加依赖** ```xml cn.com.anysdk anysdk-redis-spring-boot-starter ${latest.version} ``` 2. **配置Redis连接** ```yaml anysdk: redis: environment: local local: host: localhost port: 6379 database: 0 pool: max-total: 8 max-idle: 8 min-idle: 0 ``` 3. **使用Redis服务** ```java @Service public class UserService { @Autowired private IRedisService redisService; public void cacheUser(String userId, String userInfo) { redisService.set("user:" + userId, userInfo); } public String getUser(String userId) { return redisService.get("user:" + userId); } } ``` ## 前端管理界面 基于Vue3 + Element Plus构建的现代化管理界面: - **环境切换**: 支持本地和阿里云环境动态切换 - **数据类型管理**: 支持所有Redis数据类型的可视化操作 - **实时监控**: 数据概览和状态监控 - **响应式设计**: 适配不同屏幕尺寸 启动前端界面: ```bash cd frontend/anysdk-redis-demo-ui npm install npm run dev ``` ## 技术优势 1. **统一抽象**: 通过统一接口屏蔽不同Redis服务的差异 2. **配置驱动**: 通过配置文件即可切换不同的Redis服务 3. **高可用性**: 支持连接池、重连机制、集群模式 4. **事件驱动**: 完整的事件机制便于监控和扩展 5. **Spring Boot友好**: 提供自动配置和Starter 6. **可视化管理**: 现代化的Web管理界面 7. **文档完善**: 详细的技术文档和使用指南 ## 适用场景 - **多云部署**: 需要在不同云服务商之间切换Redis服务 - **环境隔离**: 开发、测试、生产环境使用不同的Redis服务 - **统一管理**: 需要统一管理多个Redis实例的应用 - **快速集成**: 需要快速集成Redis功能的Spring Boot项目 ## 文档 - [API设计文档](docs/API_DESIGN.md) - 详细的接口设计说明 - [用户指南](docs/USER_GUIDE.md) - 快速上手和使用指南 - [配置参考](docs/CONFIGURATION_REFERENCE.md) - 完整的配置参数说明 - [开发规范](docs/CODE_GUIDELINES.md) - 代码规范和最佳实践 - [异常处理指南](docs/ANYSDK_EXCEPTION_GUIDELINES.md) - 异常设计和处理规范 - [测试指南](docs/TEST_GUIDELINES.md) - 测试用例和测试规范 ## 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进项目。请参考 [开发规范](docs/CODE_GUIDELINES.md) 了解详细的开发规范。 ## 许可证 本项目采用 Apache License 2.0 许可证。详情请参见 [LICENSE](LICENSE) 文件。