系统内存Cache缓存组件
大约 2 分钟
系统内存Cache缓存组件
介绍
FastChar核心组件,FastChar默认集成了 Caffeine 内存缓存功能。
系统内存缓存顾名思义就是把数据缓存到系统内存中, 并不会持久化到磁盘中。
使用
开发者可以调用静态方法 FastChar.getMemoryCache() 快速的进行系统内存缓存读写操作。如下:
//新增或修改缓存
FastChar.getMemoryCache().put( "id", "1");
//获取指定key缓存值
int id = FastChar.getMemoryCache().get( "id");
//删除指定key的缓存
FastChar.getCache().remove("id");使用框架默认内存缓存
FastChar默认实现了基本内存缓存功能,开发者无需做任何配置。
基本规则: 当内存中的缓存数据超过3分钟未使用时,将自动释放缓存的数据。
开发者可以通过 FastMemoryCacheConfig 配置缓存的基本规则,如下:
public class FastCharTestWeb implements IFastWeb {
    /**
     * web启动初始化
     * @param engine
     */
    @Override
    public void onInit(FastEngine engine) throws Exception {
        
        /**此处省略其他配置代码**/
        
        //配置默认的缓存架构
        engine.getConfig(FastMemoryCacheConfig.class)
                .setCacheTimeout(1000L*60*3)//设置超时时间 单位:毫秒
                .setCacheIdle(1000L*5);//设置心跳间隔时间 单位:毫秒
    }
     /**此处省略其他代码**/
}使用Caffeine作为内存缓存
如果开发者需要使用Caffeine作为FastChar的内存缓存介质,只要在项目中引用相应的Caffeine客户端工具包并完成Redis配置即可。
以maven项目为例,在pom.xml中加入如下引用:
<!-- https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine -->
<dependency>
    <groupId>com.github.ben-manes.caffeine</groupId>
    <artifactId>caffeine</artifactId>
    <version>2.9.2</version>
    <scope>provided</scope>
</dependency>配置Caffeine
默认系统做了Caffeine基本的优化配置,如果开发者需要再次配置,可以获取 FastCaffeineConfig 类进行全局配置。
如下修改配置:
public class FastCharTestWeb implements IFastWeb {
    /**
     * web启动初始化
     * @param engine
     */
    @Override
    public void onInit(FastEngine engine) throws Exception {
        
        /**此处省略其他配置代码**/
        
        //配置Caffeine
        engine.getConfig(FastCaffeineConfig.class)
                .getBuilder()
                .expireAfterWrite(10, TimeUnit.MINUTES)
                .maximumSize(10_000);
    }
     /**此处省略其他代码**/
}