# pop-cache **Repository Path**: billho/pop-cache ## Basic Information - **Project Name**: pop-cache - **Description**: PopCache 是一个 Spring Boot 启动器,提供基于 Redis 的缓存和分布式锁功能。它提供了一种简单灵活的方式将缓存和锁机制集成到 Spring Boot 应用中。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-08 - **Last Updated**: 2025-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: 缓存, Redis, Spring, SpringBoot ## README # PopCache - 基于Redis的Spring Boot缓存与分布式锁解决方案 PopCache 是一个 Spring Boot 启动器,提供基于 Redis 的缓存和分布式锁功能。它提供了一种简单灵活的方式将缓存和锁机制集成到 Spring Boot 应用中。 ## 功能特性 - **注解式缓存**: 使用 `@Cache` 和 `@CacheClear` 注解轻松管理缓存数据 - **分布式全局锁**: 通过 `@GlobalLock` 注解实现分布式锁 - **Redis 集成**: 基于 Redis 实现高性能缓存和锁机制 - **自定义键生成**: 可扩展的键生成策略 - **序列化支持**: 默认支持 JSON 序列化,并提供可扩展的序列化选项 - **面向切面编程**: 通过 AOP 实现关注点分离 ## 模块说明 ### Core 核心模块 - 定义缓存和锁的核心接口与实现 - 包含基于 Redis 的实现 - 提供键生成和序列化工具 ### Annotation 注解模块 - 包含用于缓存和锁的注解: - `@Cache` - `@CacheClear` - `@GlobalLock` ### Starter 启动器模块 - Spring Boot 自动配置模块 - 提供开箱即用的缓存和锁功能 - 包含属性配置支持 ## 快速开始 1. 添加依赖到项目中: ```xml cn.billho spring-boot-starter-pop-cache 1.1.0 ``` 2. 在 application.yml 中配置 Redis 连接: ```yaml popcache: redis: host: localhost port: 6379 ``` 3. 在代码中使用注解: ```java @Service public class MyService { @Cache(region = "user:{1}", key = "data", expire = 60) public String getCachedData(String userId) { // 业务逻辑 } @CacheClear(region = "user:{1}", key = "data") // key 可以不填,则删除整个region下的所有key public void clearCache(String userId) { // 缓存清理逻辑 } @GlobalLock(key = "lock:{1}", timeout = 5000) public void performLockedOperation(String resourceId) { // 线程安全操作 } } ``` ## 配置属性 ### Redis 连接配置 (popcache.redis) | 属性 | 描述 | 默认值 | |------|------|--------| | host | Redis服务器地址 | 无 | | port | Redis端口 | 6379 | | password | Redis认证密码 | 空 | | timeout | 连接超时时间(毫秒) | 2000 | | database | 数据库索引号 | 1 | | enable | 启用Redis连接 | false | ## 贡献指南 欢迎贡献代码!请按以下步骤操作: 1. Fork 本仓库 2. 创建你的功能分支 3. 提交你的修改 4. 推送分支 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。