如何使用Guava LoadingCache检测事件频率

时间:2016-08-09 07:19:05

标签: java caching google-guava-cache

我需要检测事件频率,例如在X秒内发生了N次相同的事件。

我的检测过程持续24/7执行。

我的初始设计使用ConcurrentHashMap,键是一个自定义值对象,表示事件标识,事件发生时值为Joda DateTime

这种方法很适合检测事件频率但是我还必须实施驱逐程序来删除" Stale"事件

Google搜索了一种改进的方法,我发现com.google.common.cache.Cache看起来很有前途,因为它的相关CacheBuilder.expireAfter#####(),但不推荐使用Cache的所有get方法。显然我必须使用LoadingCache

LoadingCache load()方法的所有示例都显示通过访问数据库或其他"昂贵"来检索要加载的值。操作。这些都不适合我的用例。我有填充缓存所需的密钥和价值,我如何"加载"当我的值不在后端数据存储区中时,我的事件在缓存未命中?

我应该使用cache.put(Key, Value)吗?

0 个答案:

没有答案