# 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)