游戏服务器框架之使用Guava构建缓存系统
发布日期:2021-05-06 20:09:48 浏览次数:25 分类:原创文章

本文共 685 字,大约阅读时间需要 2 分钟。

缓存的作用与应用场景

缓存,在项目中的应用非常之广泛。诸如这样的场景,某些对象计算或者获取的代码比较昂贵,并且在程序里你不止一次要用到这些对象,那么,你就应该使用缓存。

缓存跟java的CoucurrentMap很类似,但青出于蓝胜于蓝。CoucurrentMap的特点是,当你往它里面放元素的时候,你需要自己手动去把它移除。而缓存的最大特点是,你无须手动去移除缓存里的元素,而是通过某些移除策略,如果超时或者内存空间紧张等等。

本文主要使用Google的guava工具库来构建我们的缓存系统。

首先说一下我们的缓存系统需要达到的两个目标。

第一,在获取某个对象时,如果对象已在缓存里则直接返回;否则,自动从数据库读取并加入到缓存,并返回给用户接口。

第二,当对象长时间没有被查询命中的话,自己将对象从缓存里移除。

缓存的实现

好,开始我们的编码......

1.定义缓存容器(CacheContainer.java)

/** * 缓存容器 *  */public abstract class CacheContainer<K, V> {    private LoadingCache<K, V> cache;    public CacheContainer(CacheOptions p) {        cache = CacheBuilder.newBuilder()                .initialCapacity(p.initialCapacity)                .maximumSize(p.maximumSize)    
上一篇:游戏服务端框架之GM金手指的设计
下一篇:游戏服务端框架之配置与玩家数据库设计

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月31日 13时52分27秒