Skip to content
On this page

缓存使用说明

1. 缓存介质类型

低代码开发平台目前支持ehcache和redis之一,可在这两者之间进行切换,当使用分布式或者集群时,使用redis分布式缓存,当以单机运行时,可以使用ehcache以减少组件的安装,两者皆支持持久化特性。

2. 缓存切换配置

ehcache和redis的切换使用非常简单,只需要在application-xx.yml配置文件上修改一个属性即可,如下:

avatar

spring.cache.type为配置缓存介质类型,支持redis和ehcache字符,即代表启用对应的缓存介质,无需修改额外的配置参数即可完成缓存介质的切换。

spring,cache.ehcache.config为指定ehcache的配置文件,默认情况下无需更改,保留默认即可。

3. 缓存接口使用

由于ehcache和redis在api的使用以及数据类型等上不太一样,所以低代码平台对缓存模块进行抽象,抽取统一的接口com.grgbanking.modules.cache.CacheService,提供统一对外的api,目前封装了以下接口:

java
/**
* 缓存
* 缓存value类型
* @param key
* @param data
*/
void set(String key, Object data);
/**
* 有时长的缓存
* @param key
* @param data
* @param expire    失效时长
* @param timeUnit  时长单位
*/
void set(String key, Object data, int expire, TimeUnit timeUnit); 
/**
* 查询
* @param key
* @param type
* @param <T>   返回类型
* @return
*/
<T> T get(String key, Class<T> type);
/**
* 删除key 
* @param key
*/
boolean  delete (String key);
/**
* 存储hash类型
* @param key
* @param field
* @param data
*/
void hset(String key, String field, Object data); 
/**
* 查询hash类型 
* @param key
* @param field
* @param type      指定返回的数据类型
* @param <T>
* @return
*/
<T> T hget(String key, String field, Class<T> type);
/**
* 删除属性,hash类型
* @param key
* @param field
* @return
*/
boolean hdel(String key, String field);
/**
* 查询key集合,支持模糊查询
* @param key
* @return
*/
Set<String> keys(String key);
/**
* 查询key是否存在,value类型
* @param key
* @return
*/
boolean hasKey(String key); 
/**
* 查询key是否存在,hash类型
* @param key
* @param field
* @return
*/
boolean hasKey(String key, String field);
/**
* 获取自增序列
* @param key
* @param field
* @param delta 增加幅度
* @return
*/
 Long incr(String key, String field, **long** delta);

4. 缓存实现原理

低代码平台的缓存模块抽象,是利用spring的相关特性,根据配置属性spring.cache.type动态加载对应的配置进行动态初始化,加载对应的配置文件以及缓存实现类,对外提供统一的接口进行使用,配置大体如下:

avatar

avatar