com.github.houbb.hades.api.context.persist.ILoadContext Maven / Gradle / Ivy
The newest version!
package com.github.houbb.hades.api.context.persist;
import com.github.houbb.hades.api.core.cache.ICache;
import java.util.Map;
/**
* 加载接口上下文
* 1. 如果持久化存储的是字符串,是否存在编码问题
* 1.1 文件的加载路径地址
* 2. 判断是否存在并发情况:一次只允许一个进程进行持久化。加载只有一次,可以不考虑。
* 3. 持久化采用异步调用,避免阻塞主进程。加载不需要,直接加载即可。
* 4. 是否可以让加载变得简单化
* 比如固定使用 HDB 模式,如果持久化使用 AOF,则定期将 AOF 转换为 HDB 文件。
* 5. 内容组成
* (1)HADES:版本号。考虑到不同版本之间可能不兼容。版本号可以 major.version 保证兼容即可。
* (2)key:value:expireTime k/v 可以存储 byte 流,expireTime 依然使用时间戳。为了简化操作,每一行是独立的。
* 如果是 AOF 模式,这里全是指令。每一行是一个唯一的指令。
* (3)checksum 校验和,可以不加。用来判断文件是否毁坏。
* 如果文件损坏,是否有补救措施?
*
* @author binbin.hou
* @since 0.0.1
* @param 泛型
*/
public interface ILoadContext {
/**
* 文件路径
*
* @return 文件路径
* @since 0.0.5
*/
String path();
/**
* 文件编码
*
* @return 编码
* @since 0.0.5
*/
String charset();
/**
* 缓存信息
*
* @return 缓存信息
*/
ICache cache();
}