# unified-cache **Repository Path**: pesking/unified-cache ## Basic Information - **Project Name**: unified-cache - **Description**: 统一缓存 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-28 - **Last Updated**: 2025-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 统一缓存开发文档 #### 介绍 统一缓存接口模块,提供标准访问缓存接口,以便缓存底层逻辑发生变化,不会影响上层业务代码。 #### 引用说明 引入仓库地址 ``` pesking_public pesking_public http://www.peskingsoft.com/repository/internal true true ``` 引入框架包 ``` com.pesking.framework platform 1.0-SNAPSHOT pom import ``` 加入缓存标准接口包 ``` com.pesking.framework unified-cache ``` #### 实现新的缓存 1. 实现缓存抽象类com.pesking.core.cache.AbstractCache,示例说明 ```java public class TestCache extends AbstractCache { public TestCache(String cacheId, CacheFailureCallback swaggerCallback, int expireTime, CacheExpireTimeType expireTimeType) { super(cacheId, swaggerCallback, expireTime, expireTimeType); } @Override public boolean delete(String arg0) { } @Override public V get(String key) { return null; } @Override public Set keys() { } @Override public long getCacheCurrentTime() { } @Override public V set(String key, V value) { } @Override public void clearAll() { } @Override public V set(String key, V value, int expire) { } } ``` 2. 实现接口com.pesking.core.cache.DistributedCacheProvider ```java public class TestDistributedCacheProvider implements DistributedCacheProvider { @Override public Cache getCache(String cacheName, Class cls, int expireTime, CacheExpireTimeType expireTimeType, CacheFailureCallback swaggerCallback) { return new TestCache<>(cacheName,swaggerCallback,expireTime,expireTimeType); } @Override public int getOrder() { return 100; //这个优先级要设置高一点,否则会使用默认的 } } ``` 3. 在/resources/META-INF/services目录下新建文件com.pesking.core.cache.DistributedCacheProvider,文件内容: ``` test.cache.TestDistributedCacheProvider ``` 填写的是上述类的全路径名 #### 使用说明 1. 如何取得本地缓存对象 ```java Cache cache = CacheManager.getLocalCacheManager().getCache("test", String.class, 10, CacheExpireTimeType.FIX_TIME); ``` (1) 参数一:缓存名,必须保证唯一性 (2) 参数二:缓存对象类名 (3) 参数三:缓存过期时间,如果永不过期,该参数可以不传递 (4) 参数四:缓存过滤类型,一个固定时间过期(FIX_TIME),一个是空间过期(IDLE_TIME) 2. 如何取得分布式缓存对象 ```java Cache cache = CacheManager.getDistributedCacheManager().getCache("test", String.class, 10, CacheExpireTimeType.FIX_TIME); ``` (1) 参数一:缓存名,必须保证唯一性 (2) 参数二:缓存对象类名 (3) 参数三:缓存过期时间,如果永不过期,该参数可以不传递 (4) 参数四:缓存过滤类型,一个固定时间过期(FIX_TIME),一个是空间过期(IDLE_TIME)