在项目中遇到一个场景:为了减少响应时间,将从数据库读取出来的数据读取到内存中(使用变量Map实现),对数据的操作就在内存中进行,而不用去数据库中进行。同时,带来的问题是操作后的数据如何更新到数据库,这个问题的解决方式目前是设置数据的存活时间和刷新时间。
缓存单元代码
以下是实现数据缓存单元的代码:
package org.ghostcloud.cn.mysql.jdbc.common.util;
import java.io.File;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 把数据预先缓存到内存,缩短响应时间
*/
public class DataMapUtil {
//容器,保存class 图标、描述信息
private static final Map<String, CacheData> CACHE_DATA = new ConcurrentHashMap<>();
/**
* 缓存数据实体
*/
private static class CacheData {
private String iconPath;
private String description;
public CacheData(String iconPath, String description) {
this.iconPath = iconPath;
this.description = description;
}
public String getIconPath() {
return iconPath;
}
public void setIconPath(String iconPath) {
this.iconPath = iconPath;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
/**
* 新增数据
*
* @param className
* @param iconPath
* @param description
*/
public static void setData(String classNam